From: Dan Carpenter > On Sat, Feb 01, 2014 at 09:57:39PM +0800, Chen Gang wrote: > > It seems, our kernel still stick to treate 'pack' region have effect > > with both 'align' and 'sizeof'. > > It's not about packed regions. It's about unions. It's saying the > sizeof() a union is a multiple of 4 unless it's packed. > > union foo { > short x; > short y; > }; > > The author intended the sizeof(union foo) to be 2 but on metag arch then > it is 4. The same is probably be true of: struct foo { _u16 bar; }; Architectures that define such alignment rules are a right PITA. You either need to get the size to 2 without using 'packed', or just not define such structures. It is worth seeing if adding aligned(2) will change the size - I'm not sure. David _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel