net: usb: Merge cpu_to_le32s + memcpy to put_unaligned_le32
authorChuhong Yuan <hslester96@gmail.com>
Mon, 22 Jul 2019 07:41:34 +0000 (15:41 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Jul 2019 03:44:14 +0000 (20:44 -0700)
Merge the combo uses of cpu_to_le32s and memcpy.
Use put_unaligned_le32 instead.
This simplifies the code.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/asix_common.c
drivers/net/usb/ax88179_178a.c
drivers/net/usb/lan78xx.c
drivers/net/usb/smsc75xx.c
drivers/net/usb/sr9800.c

index b39ee714fb0130cf5b1355f047962f5dc4d0cccb..e39f41efda3ec1ecac5616d509f183c99ea69a33 100644 (file)
@@ -221,6 +221,7 @@ struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
        int tailroom = skb_tailroom(skb);
        u32 packet_len;
        u32 padbytes = 0xffff0000;
+       void *ptr;
 
        padlen = ((skb->len + 4) & (dev->maxpacket - 1)) ? 0 : 4;
 
@@ -256,13 +257,11 @@ struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
        }
 
        packet_len = ((skb->len ^ 0x0000ffff) << 16) + skb->len;
-       skb_push(skb, 4);
-       cpu_to_le32s(&packet_len);
-       skb_copy_to_linear_data(skb, &packet_len, sizeof(packet_len));
+       ptr = skb_push(skb, 4);
+       put_unaligned_le32(packet_len, ptr);
 
        if (padlen) {
-               cpu_to_le32s(&padbytes);
-               memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes));
+               put_unaligned_le32(padbytes, skb_tail_pointer(skb));
                skb_put(skb, sizeof(padbytes));
        }
 
index 72d165114b674fdc8629e8f7d00af80cde67dca9..daa54486ab09468a331ebc13e2c23d8ba35cdead 100644 (file)
@@ -1421,6 +1421,7 @@ ax88179_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags)
        int frame_size = dev->maxpacket;
        int mss = skb_shinfo(skb)->gso_size;
        int headroom;
+       void *ptr;
 
        tx_hdr1 = skb->len;
        tx_hdr2 = mss;
@@ -1435,13 +1436,9 @@ ax88179_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags)
                return NULL;
        }
 
-       skb_push(skb, 4);
-       cpu_to_le32s(&tx_hdr2);
-       skb_copy_to_linear_data(skb, &tx_hdr2, 4);
-
-       skb_push(skb, 4);
-       cpu_to_le32s(&tx_hdr1);
-       skb_copy_to_linear_data(skb, &tx_hdr1, 4);
+       ptr = skb_push(skb, 8);
+       put_unaligned_le32(tx_hdr1, ptr);
+       put_unaligned_le32(tx_hdr2, ptr + 4);
 
        return skb;
 }
index 9c33b35bd1558ceeffbbb805d989f3b045ff9dc5..769bb262fbec9852dcb8000bc03e9f39541c88e0 100644 (file)
@@ -2729,6 +2729,7 @@ static struct sk_buff *lan78xx_tx_prep(struct lan78xx_net *dev,
                                       struct sk_buff *skb, gfp_t flags)
 {
        u32 tx_cmd_a, tx_cmd_b;
+       void *ptr;
 
        if (skb_cow_head(skb, TX_OVERHEAD)) {
                dev_kfree_skb_any(skb);
@@ -2757,13 +2758,9 @@ static struct sk_buff *lan78xx_tx_prep(struct lan78xx_net *dev,
                tx_cmd_b |= skb_vlan_tag_get(skb) & TX_CMD_B_VTAG_MASK_;
        }
 
-       skb_push(skb, 4);
-       cpu_to_le32s(&tx_cmd_b);
-       memcpy(skb->data, &tx_cmd_b, 4);
-
-       skb_push(skb, 4);
-       cpu_to_le32s(&tx_cmd_a);
-       memcpy(skb->data, &tx_cmd_a, 4);
+       ptr = skb_push(skb, 8);
+       put_unaligned_le32(tx_cmd_a, ptr);
+       put_unaligned_le32(tx_cmd_b, ptr + 4);
 
        return skb;
 }
index 7fac9db5380d2520c50acef3dab7477038da5c56..9556d431885f53634d303ed93bc5a8d6643f97a9 100644 (file)
@@ -2255,6 +2255,7 @@ static struct sk_buff *smsc75xx_tx_fixup(struct usbnet *dev,
                                         struct sk_buff *skb, gfp_t flags)
 {
        u32 tx_cmd_a, tx_cmd_b;
+       void *ptr;
 
        if (skb_cow_head(skb, SMSC75XX_TX_OVERHEAD)) {
                dev_kfree_skb_any(skb);
@@ -2275,13 +2276,9 @@ static struct sk_buff *smsc75xx_tx_fixup(struct usbnet *dev,
                tx_cmd_b = 0;
        }
 
-       skb_push(skb, 4);
-       cpu_to_le32s(&tx_cmd_b);
-       memcpy(skb->data, &tx_cmd_b, 4);
-
-       skb_push(skb, 4);
-       cpu_to_le32s(&tx_cmd_a);
-       memcpy(skb->data, &tx_cmd_a, 4);
+       ptr = skb_push(skb, 8);
+       put_unaligned_le32(tx_cmd_a, ptr);
+       put_unaligned_le32(tx_cmd_b, ptr + 4);
 
        return skb;
 }
index 35f39f23d88144195b8f007035f207d38b48c1fd..c5d4a0060124cf238543b3c9f3f9de603749a708 100644 (file)
@@ -115,6 +115,7 @@ static struct sk_buff *sr_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
        u32 padbytes = 0xffff0000;
        u32 packet_len;
        int padlen;
+       void *ptr;
 
        padlen = ((skb->len + 4) % (dev->maxpacket - 1)) ? 0 : 4;
 
@@ -133,14 +134,12 @@ static struct sk_buff *sr_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
                        return NULL;
        }
 
-       skb_push(skb, 4);
+       ptr = skb_push(skb, 4);
        packet_len = (((skb->len - 4) ^ 0x0000ffff) << 16) + (skb->len - 4);
-       cpu_to_le32s(&packet_len);
-       skb_copy_to_linear_data(skb, &packet_len, sizeof(packet_len));
+       put_unaligned_le32(packet_len, ptr);
 
        if (padlen) {
-               cpu_to_le32s(&padbytes);
-               memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes));
+               put_unaligned_le32(padbytes, skb_tail_pointer(skb));
                skb_put(skb, sizeof(padbytes));
        }