On Tue, Dec 21, 2010 at 2:43 AM, Will Newton <[email protected]> wrote:
> On Tue, Dec 21, 2010 at 5:44 AM, Andrew Morton
>>> #include <linux/kernel.h>
>>>
>>> -struct __una_u16 { u16 x __attribute__((packed)); };
>>> -struct __una_u32 { u32 x __attribute__((packed)); };
>>> -struct __una_u64 { u64 x __attribute__((packed)); };
>>> +struct __una_u16 { u16 x; } __attribute__((packed));
>>> +struct __una_u32 { u32 x; } __attribute__((packed));
>>> +struct __una_u64 { u64 x; } __attribute__((packed));
>>>
>>
>> Yes, that was wrong.
>>
>> Do you think this bug affects 2.6.36 or earlier?
Interesting, I thought about this when modifying this awhile ago, and
was relying on this from the gcc manual:
packed
<snip>
Specifying this attribute for struct and union types is equivalent
to specifying the packed attribute on each of the
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
structure or union members. Specifying the -fshort-enums flag on the
line is equivalent to specifying the packed
attribute on all enum definitions.
What version of gcc was this?
So, no objection to specifying packed on the struct definition rather
than the member, it was only done that way
as that was what was there when I made some of the code common.
Harvey
_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable