NetBSD Problem Report #50513
From www@NetBSD.org Thu Dec 10 21:33:37 2015
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.NetBSD.org [199.233.217.200])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
by mollari.NetBSD.org (Postfix) with ESMTPS id 12842A6651
for <gnats-bugs@gnats.NetBSD.org>; Thu, 10 Dec 2015 21:33:37 +0000 (UTC)
Message-Id: <20151210213335.F31A0A667C@mollari.NetBSD.org>
Date: Thu, 10 Dec 2015 21:33:35 +0000 (UTC)
From: fzerangue@mac.com
Reply-To: fzerangue@mac.com
To: gnats-bugs@NetBSD.org
Subject: Incorrect logic for atomic_nand_xx.S
X-Send-Pr-Version: www-1.0
>Number: 50513
>Category: port-arm32
>Synopsis: Incorrect logic for atomic_nand_xx.S
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-arm32-maintainer
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Dec 10 21:35:00 +0000 2015
>Closed-Date: Mon May 30 18:40:48 +0000 2016
>Last-Modified: Mon May 30 18:40:48 +0000 2016
>Originator: Frank Zerangue
>Release: NetBSD-7.0
>Organization:
>Environment:
Darwin Franks-Mac-Pro-3.local 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
>Description:
usr/src/common/lib/libc/arch/arm/atomic/atomic_nand_xx.S
http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html - defines
type __sync_fetch_and_nand (type *ptr, type value, ...) as
{ tmp = *ptr; *ptr = ~tmp & value; return tmp; } // NAND
atomic_nand_xx.S implements the logic defined above (4.1.2) which is not a correct NAND function but should be implemented as defined below (4.4.5) which is a correct NAND function.
https://gcc.gnu.org/onlinedocs/gcc-4.4.5/gcc/Atomic-Builtins.html - defines
type __sync_fetch_and_nand (type *ptr, type value, ...) as
{ tmp = *ptr; *ptr = ~(tmp & value); return tmp; } // NAND
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
From: "Nick Hudson" <skrll@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/50513 CVS commit: src/common/lib/libc/arch/arm/atomic
Date: Fri, 11 Dec 2015 12:41:10 +0000
Module Name: src
Committed By: skrll
Date: Fri Dec 11 12:41:10 UTC 2015
Modified Files:
src/common/lib/libc/arch/arm/atomic: atomic_nand_16.S atomic_nand_32.S
atomic_nand_64.S atomic_nand_8.S sync_fetch_and_nand_8.S
Log Message:
Use gcc 4.4 and later operation for nand, i.e.
*ptr = ~(tmp & value) instead of *ptr = ~tmp & value
There was also another bug in sync_fetch_and_nand_8 which I've also fixed.
PR port-arm32/50513: Incorrect logic for atomic_nand_xx.S
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/common/lib/libc/arch/arm/atomic/atomic_nand_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_nand_32.S \
src/common/lib/libc/arch/arm/atomic/atomic_nand_8.S
cvs rdiff -u -r1.3 -r1.4 src/common/lib/libc/arch/arm/atomic/atomic_nand_64.S
cvs rdiff -u -r1.4 -r1.5 \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_nand_8.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Soren Jacobsen" <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/50513 CVS commit: [netbsd-7] src/common/lib/libc/arch/arm/atomic
Date: Fri, 26 Feb 2016 22:29:04 +0000
Module Name: src
Committed By: snj
Date: Fri Feb 26 22:29:04 UTC 2016
Modified Files:
src/common/lib/libc/arch/arm/atomic [netbsd-7]: atomic_nand_16.S
atomic_nand_32.S atomic_nand_64.S atomic_nand_8.S
sync_fetch_and_nand_8.S
Log Message:
Pull up following revision(s) (requested by skrll in ticket #1105):
common/lib/libc/arch/arm/atomic/atomic_nand_16.S: revision 1.3
common/lib/libc/arch/arm/atomic/atomic_nand_32.S: revision 1.3
common/lib/libc/arch/arm/atomic/atomic_nand_64.S: revision 1.4
common/lib/libc/arch/arm/atomic/atomic_nand_8.S: revision 1.3
common/lib/libc/arch/arm/atomic/sync_fetch_and_nand_8.S: revision 1.5
Use gcc 4.4 and later operation for nand, i.e.
*ptr = ~(tmp & value) instead of *ptr = ~tmp & value
There was also another bug in sync_fetch_and_nand_8 which I've also fixed.
PR port-arm32/50513: Incorrect logic for atomic_nand_xx.S
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.2.6.1 \
src/common/lib/libc/arch/arm/atomic/atomic_nand_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_nand_32.S \
src/common/lib/libc/arch/arm/atomic/atomic_nand_8.S \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_nand_8.S
cvs rdiff -u -r1.3 -r1.3.6.1 \
src/common/lib/libc/arch/arm/atomic/atomic_nand_64.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 30 May 2016 04:13:34 +0000
State-Changed-Why:
Is this fixed?
From: Frank Zerangue <fzerangue@mac.com>
To: gnats-bugs@NetBSD.org, dholland@NetBSD.org
Cc: port-arm32-maintainer@netbsd.org, netbsd-bugs@netbsd.org,
gnats-admin@netbsd.org
Subject: Re: port-arm32/50513 (Incorrect logic for atomic_nand_xx.S)
Date: Mon, 30 May 2016 10:11:24 -0500
--Apple-Mail=_34BE15E0-BA3E-4DAF-BCEF-9694CFA90729
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Yes,
Fix committed by Nick Hudson, 12/11/2015. See below.
Frank
From: "Nick Hudson" <skrll@netbsd.org <mailto:skrll@netbsd.org>>
To: gnats-bugs@gnats.NetBSD.org <mailto:gnats-bugs@gnats.NetBSD.org>
Cc:=20
Subject: PR/50513 CVS commit: src/common/lib/libc/arch/arm/atomic
Date: Fri, 11 Dec 2015 12:41:10 +0000
Module Name: src
Committed By: skrll
Date: Fri Dec 11 12:41:10 UTC 2015
Modified Files:
src/common/lib/libc/arch/arm/atomic: atomic_nand_16.S =
atomic_nand_32.S
atomic_nand_64.S atomic_nand_8.S sync_fetch_and_nand_8.S
Log Message:
Use gcc 4.4 and later operation for nand, i.e.
*ptr =3D ~(tmp & value) instead of *ptr =3D ~tmp & value
There was also another bug in sync_fetch_and_nand_8 which I've also =
fixed.
PR port-arm32/50513: Incorrect logic for atomic_nand_xx.S
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 =
src/common/lib/libc/arch/arm/atomic/atomic_nand_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_nand_32.S \
src/common/lib/libc/arch/arm/atomic/atomic_nand_8.S
cvs rdiff -u -r1.3 -r1.4 =
src/common/lib/libc/arch/arm/atomic/atomic_nand_64.S
cvs rdiff -u -r1.4 -r1.5 \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_nand_8.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
> On May 29, 2016, at 11:13 PM, dholland@NetBSD.org wrote:
>=20
> Synopsis: Incorrect logic for atomic_nand_xx.S
>=20
> State-Changed-From-To: open->feedback
> State-Changed-By: dholland@NetBSD.org
> State-Changed-When: Mon, 30 May 2016 04:13:34 +0000
> State-Changed-Why:
> Is this fixed?
>=20
>=20
>=20
--Apple-Mail=_34BE15E0-BA3E-4DAF-BCEF-9694CFA90729
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Yes,<div class=3D""><br class=3D""></div><div class=3D"">Fix =
committed by Nick Hudson, 12/11/2015. See below.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Frank</div><div class=3D""><br =
class=3D""></div><div class=3D"">From: "Nick Hudson" <<a =
href=3D"mailto:skrll@netbsd.org" class=3D"">skrll@netbsd.org</a>><br =
class=3D"">To: <a href=3D"mailto:gnats-bugs@gnats.NetBSD.org" =
class=3D"">gnats-bugs@gnats.NetBSD.org</a><br class=3D"">Cc: <br =
class=3D"">Subject: PR/50513 CVS commit: =
src/common/lib/libc/arch/arm/atomic<br class=3D"">Date: Fri, 11 Dec 2015 =
12:41:10 +0000<br class=3D""><br class=3D"">Module Name:<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>src<br =
class=3D"">Committed By:<span class=3D"Apple-tab-span" =
style=3D"white-space: pre;"> </span>skrll<br class=3D"">Date:<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>Fri Dec =
11 12:41:10 UTC 2015<br class=3D""><br class=3D"">Modified Files:<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> =
</span>src/common/lib/libc/arch/arm/atomic: atomic_nand_16.S =
atomic_nand_32.S<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space: pre;"> =
</span> atomic_nand_64.S atomic_nand_8.S =
sync_fetch_and_nand_8.S<br class=3D""><br class=3D"">Log Message:<br =
class=3D"">Use gcc 4.4 and later operation for nand, i.e.<br =
class=3D"">*ptr =3D ~(tmp & value) instead of *ptr =3D ~tmp & =
value<br class=3D""><br class=3D"">There was also another bug in =
sync_fetch_and_nand_8 which I've also fixed.<br class=3D""><br =
class=3D"">PR port-arm32/50513: Incorrect logic for atomic_nand_xx.S<br =
class=3D""><br class=3D""><br class=3D"">To generate a diff of this =
commit:<br class=3D"">cvs rdiff -u -r1.2 -r1.3 =
src/common/lib/libc/arch/arm/atomic/atomic_nand_16.S \<br =
class=3D""> src/common/lib/libc/arch/arm/atomic/ato=
mic_nand_32.S \<br =
class=3D""> src/common/lib/libc/arch/arm/atomic/ato=
mic_nand_8.S<br class=3D"">cvs rdiff -u -r1.3 -r1.4 =
src/common/lib/libc/arch/arm/atomic/atomic_nand_64.S<br class=3D"">cvs =
rdiff -u -r1.4 -r1.5 \<br =
class=3D""> src/common/lib/libc/arch/arm/atomic/syn=
c_fetch_and_nand_8.S<br class=3D""><br class=3D"">Please note that diffs =
are not public domain; they are subject to the<br class=3D"">copyright =
notices on the relevant files.</div><div class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
May 29, 2016, at 11:13 PM, <a href=3D"mailto:dholland@NetBSD.org" =
class=3D"">dholland@NetBSD.org</a> wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D"">Synopsis: Incorrect =
logic for atomic_nand_xx.S<br class=3D""><br =
class=3D"">State-Changed-From-To: open->feedback<br =
class=3D"">State-Changed-By: <a href=3D"mailto:dholland@NetBSD.org" =
class=3D"">dholland@NetBSD.org</a><br class=3D"">State-Changed-When: =
Mon, 30 May 2016 04:13:34 +0000<br class=3D"">State-Changed-Why:<br =
class=3D"">Is this fixed?<br class=3D""><br class=3D""><br class=3D""><br =
class=3D""></div></blockquote></div><br class=3D""></div></body></html>=
--Apple-Mail=_34BE15E0-BA3E-4DAF-BCEF-9694CFA90729--
State-Changed-From-To: feedback->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 30 May 2016 18:40:48 +0000
State-Changed-Why:
confirmed, thanks.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.