Re: [PATCH] drivers: w1: make w1_slave::flags long to avoid casts

From: Andrew Morton
Date: Fri Nov 01 2013 - 15:30:53 EST


On Fri, 01 Nov 2013 20:01:39 +0400 Evgeniy Polyakov <zbr@xxxxxxxxxxx> wrote:

> > Now that I look at documentation, I think you are correct, but the
> > problem is on big-endian 64-bit architectures. __The fix is still
> > valid, but the commit message not so much. __Something along the
> > lines of the following would be better:
>
> Guys, you so much overcomplicate things - this field is basically a set of in-memory flags
> for attached device, there is no need to even think about how it is present in different endianess
>
> Or do I miss something fundamental there? I wrote it gazillions years ago and probably already forgot something

set_bit() operates on longs. So if we do

struct foo {
u32 a;
u32 b;
} f;

...
set_bit(0, (long *)&f.a);
...

then we'll scribble on f.b on a big-endian 64-bit machine.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/