Messages in this thread | | | Date | Tue, 12 May 2015 22:00:13 +0200 | From | Mateusz Kulikowski <> | Subject | Re: [PATCH v3 03/33] staging: rtl8192e: Mark unaligned memcpy() |
| |
On 11.05.2015 10:26, Dan Carpenter wrote: (...) >> */ >> skb_pull(sub_skb, SNAP_SIZE); >> - memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, ETH_ALEN); >> - memcpy(skb_push(sub_skb, ETH_ALEN), prxb->dst, ETH_ALEN); >> + memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, >> + ETH_ALEN); /* Must be unaligned */ > > > 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".
If I remember correctly - I missed it in the first version as well, but then added BUG into ether_addr_copy().
Regards, Mateusz
| |