Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-microblaze.git] / drivers / net / usb / lan78xx.c
index f033fee..58f5a21 100644 (file)
@@ -1258,8 +1258,7 @@ static void lan78xx_status(struct lan78xx_net *dev, struct urb *urb)
                return;
        }
 
-       memcpy(&intdata, urb->transfer_buffer, 4);
-       le32_to_cpus(&intdata);
+       intdata = get_unaligned_le32(urb->transfer_buffer);
 
        if (intdata & INT_ENP_PHY_INT) {
                netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata);
@@ -2730,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);
@@ -2758,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;
 }
@@ -3105,16 +3101,13 @@ static int lan78xx_rx(struct lan78xx_net *dev, struct sk_buff *skb)
                struct sk_buff *skb2;
                unsigned char *packet;
 
-               memcpy(&rx_cmd_a, skb->data, sizeof(rx_cmd_a));
-               le32_to_cpus(&rx_cmd_a);
+               rx_cmd_a = get_unaligned_le32(skb->data);
                skb_pull(skb, sizeof(rx_cmd_a));
 
-               memcpy(&rx_cmd_b, skb->data, sizeof(rx_cmd_b));
-               le32_to_cpus(&rx_cmd_b);
+               rx_cmd_b = get_unaligned_le32(skb->data);
                skb_pull(skb, sizeof(rx_cmd_b));
 
-               memcpy(&rx_cmd_c, skb->data, sizeof(rx_cmd_c));
-               le16_to_cpus(&rx_cmd_c);
+               rx_cmd_c = get_unaligned_le16(skb->data);
                skb_pull(skb, sizeof(rx_cmd_c));
 
                packet = skb->data;