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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/