diff options
Diffstat (limited to 'drivers/net/qla3xxx.c')
-rwxr-xr-x | drivers/net/qla3xxx.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c index a8246eb2f8d9..7b80fb7a9d9b 100755 --- a/drivers/net/qla3xxx.c +++ b/drivers/net/qla3xxx.c | |||
@@ -1873,7 +1873,6 @@ static void ql_process_mac_rx_intr(struct ql3_adapter *qdev, | |||
1873 | pci_unmap_len(lrg_buf_cb2, maplen), | 1873 | pci_unmap_len(lrg_buf_cb2, maplen), |
1874 | PCI_DMA_FROMDEVICE); | 1874 | PCI_DMA_FROMDEVICE); |
1875 | prefetch(skb->data); | 1875 | prefetch(skb->data); |
1876 | skb->dev = qdev->ndev; | ||
1877 | skb->ip_summed = CHECKSUM_NONE; | 1876 | skb->ip_summed = CHECKSUM_NONE; |
1878 | skb->protocol = eth_type_trans(skb, qdev->ndev); | 1877 | skb->protocol = eth_type_trans(skb, qdev->ndev); |
1879 | 1878 | ||
@@ -1928,7 +1927,8 @@ static void ql_process_macip_rx_intr(struct ql3_adapter *qdev, | |||
1928 | * Copy the ethhdr from first buffer to second. This | 1927 | * Copy the ethhdr from first buffer to second. This |
1929 | * is necessary for 3022 IP completions. | 1928 | * is necessary for 3022 IP completions. |
1930 | */ | 1929 | */ |
1931 | memcpy(skb_push(skb2, size), skb1->data + VLAN_ID_LEN, size); | 1930 | skb_copy_from_linear_data_offset(skb1, VLAN_ID_LEN, |
1931 | skb_push(skb2, size), size); | ||
1932 | } else { | 1932 | } else { |
1933 | u16 checksum = le16_to_cpu(ib_ip_rsp_ptr->checksum); | 1933 | u16 checksum = le16_to_cpu(ib_ip_rsp_ptr->checksum); |
1934 | if (checksum & | 1934 | if (checksum & |
@@ -1946,7 +1946,6 @@ static void ql_process_macip_rx_intr(struct ql3_adapter *qdev, | |||
1946 | skb2->ip_summed = CHECKSUM_UNNECESSARY; | 1946 | skb2->ip_summed = CHECKSUM_UNNECESSARY; |
1947 | } | 1947 | } |
1948 | } | 1948 | } |
1949 | skb2->dev = qdev->ndev; | ||
1950 | skb2->protocol = eth_type_trans(skb2, qdev->ndev); | 1949 | skb2->protocol = eth_type_trans(skb2, qdev->ndev); |
1951 | 1950 | ||
1952 | netif_receive_skb(skb2); | 1951 | netif_receive_skb(skb2); |