Message ID | 20181012083405.19246-7-ben.dooks@codethink.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/8] usbnet: smsc95xx: fix rx packet alignment | expand |
Hello! On 12.10.2018 11:34, Ben Dooks wrote: > Change the RX code to use get_unaligned_le32() instead of the combo > of memcpy and cpu_to_le32s(&var). le32_to_cpus(), actually. > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > --- > drivers/net/usb/smsc95xx.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c > index 8ce190da8be0..03c3c02b569c 100644 > --- a/drivers/net/usb/smsc95xx.c > +++ b/drivers/net/usb/smsc95xx.c > @@ -618,9 +618,7 @@ static void smsc95xx_status(struct usbnet *dev, struct urb *urb) > return; > } > > - memcpy(&intdata, urb->transfer_buffer, 4); > - le32_to_cpus(&intdata); > - > + intdata = get_unaligned_le32(urb->transfer_buffer); > netif_dbg(dev, link, dev->net, "intdata: 0x%08X\n", intdata); > > if (intdata & INT_ENP_PHY_INT_) > @@ -1922,8 +1920,7 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) > unsigned char *packet; > u16 size; > > - memcpy(&header, skb->data, sizeof(header)); > - le32_to_cpus(&header); > + header = get_unaligned_le32(skb->data); > skb_pull(skb, 4 + NET_IP_ALIGN); > packet = skb->data; > MBR, Sergei
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index 8ce190da8be0..03c3c02b569c 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -618,9 +618,7 @@ static void smsc95xx_status(struct usbnet *dev, struct urb *urb) return; } - memcpy(&intdata, urb->transfer_buffer, 4); - le32_to_cpus(&intdata); - + intdata = get_unaligned_le32(urb->transfer_buffer); netif_dbg(dev, link, dev->net, "intdata: 0x%08X\n", intdata); if (intdata & INT_ENP_PHY_INT_) @@ -1922,8 +1920,7 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) unsigned char *packet; u16 size; - memcpy(&header, skb->data, sizeof(header)); - le32_to_cpus(&header); + header = get_unaligned_le32(skb->data); skb_pull(skb, 4 + NET_IP_ALIGN); packet = skb->data;
Change the RX code to use get_unaligned_le32() instead of the combo of memcpy and cpu_to_le32s(&var). Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- drivers/net/usb/smsc95xx.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)