[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1367590455.29805.30.camel@edumazet-glaptop>
Date: Fri, 03 May 2013 07:14:15 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Alan Modra <amodra@...il.com>
Cc: Anton Blanchard <anton@...ba.org>,
David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>, linuxppc-dev@...ts.ozlabs.org,
Paul Mackerras <paulus@...ba.org>,
Ambrose Feinstein <ambrose@...gle.com>
Subject: Re: [PATCH net-next] af_unix: fix a fatal race with bit fields
On Fri, 2013-05-03 at 11:01 +0930, Alan Modra wrote:
> On Tue, Apr 30, 2013 at 10:04:32PM -0700, Eric Dumazet wrote:
> > These kind of errors are pretty hard to find, its a pity to spend time
> > on them.
>
> Well, yes. From the first comment in gcc PR52080. "For the following
> testcase we generate a 8 byte RMW cycle on IA64 which causes locking
> problems in the linux kernel btrfs filesystem."
>
> Did someone fix btrfs, but not check other kernel locks? Having now
> hit the same problem again, have you checked that other kernel locks
> don't have adjacent bit fields in the same 64-bit word? And comment
> the struct to ensure someone doesn't optimize those unsigned chars
> back to bit fields.
Not only spinlock, but atomic_t followed by bit fields.
BTW, if a spinlock is followed by bit fields, but bit fields
only changed when this spinlock is held, there is no problem, unless
spinlock is a ticket spinlock.
In af_unix, bug happens because the bit fields were changed without
spinlock being held (another global spinlock is used instead)
(ppc64 doesnt use ticket spinlocks yet)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists