Messages in this thread | | | Date | Tue, 3 Apr 2018 11:08:54 -0700 | From | Omar Sandoval <> | Subject | Re: [PATCH] bitmap: fix memset optimization on big-endian systems |
| |
On Mon, Apr 02, 2018 at 04:49:39PM -0700, Linus Torvalds wrote: > On Mon, Apr 2, 2018 at 4:37 PM, Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > We should probably have at least switched it to "unsigned long int" > > I meant just "unsigned int", of course. > > Right now we occasionally have a silly 64-bit field just for a couple of flags.
Not to mention the mix of bit fields, macros, and enums, some of which are bit masks, some of which are the bit number :)
> Of course, we do have cases where 64-bit architectures happily end up > using more than 32 bits too, so the "unsigned long" is occasionally > useful. But it's rare enough that it probably wasn't the right thing > to do. > > Water under the bridge. Part of it is due to another historical > accident: the alpha port was one of the early ports, and it didn't do > atomic byte accesses at all. > > So we had multiple issues that all conspired to "unsigned long arrays > are the natural for atomic bit operations" even though they have this > really annoying byte order issue.
Thanks for the historical context, this is exactly what I was wondering when I spotted this bug and fixed a similar one in Btrfs a couple of years back.
| |