usbnet: smsc95xx: fix memcpy for accessing rx-data
authorBen Dooks <ben.dooks@codethink.co.uk>
Wed, 14 Nov 2018 11:50:21 +0000 (11:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 17 Nov 2018 04:16:19 +0000 (20:16 -0800)
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/smsc95xx.c

index 924ca94..a50cb9f 100644 (file)
@@ -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_)
@@ -1934,8 +1932,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;