On Thu, May 14, 2015 at 10:29:39PM +0200, Mateusz Kulikowski wrote: > On 13.05.2015 10:22, Dan Carpenter wrote: > > On Tue, May 12, 2015 at 10:00:13PM +0200, Mateusz Kulikowski wrote: > >> On 11.05.2015 10:26, Dan Carpenter wrote: > (...) > >>> > >>> Which part isn't aligned? I think they both are. > >>> > >> struct rtllib_rxb *prxb = prxbIndicateArray[j]; > >> > >> struct rtllib_rxb { > >> u8 nr_subframes; > >> struct sk_buff *subframes[MAX_SUBFRAME_COUNT == 64]; > >> u8 dst[ETH_ALEN]; // here > >> u8 src[ETH_ALEN]; // here > >> } __packed; > >> > >> Either I forgot alignment / packing rules or this fields are never aligned "by design". > > > > You must have forgotten something... Everything after the pointer is > > going to be aligned sizeof(void *). > > That would be true, if structure was not __packed: > Oh. Duh... You are correct. I'm not positive it's "by design" though, this is staging code so maybe they just added __packed to every struct. In fact, I'm pretty sure unaligned pointers don't work on some arches so the __packed is probably a bug. regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel