diff options
-rw-r--r-- | drivers/net/qlge/qlge_main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index a45e2822e855..0775b4d7d3ff 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c | |||
@@ -1525,6 +1525,13 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev, | |||
1525 | return; | 1525 | return; |
1526 | } | 1526 | } |
1527 | 1527 | ||
1528 | /* Frame error, so drop the packet. */ | ||
1529 | if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) { | ||
1530 | QPRINTK(qdev, DRV, ERR, "Receive error, flags2 = 0x%x\n", | ||
1531 | ib_mac_rsp->flags2); | ||
1532 | dev_kfree_skb_any(skb); | ||
1533 | return; | ||
1534 | } | ||
1528 | prefetch(skb->data); | 1535 | prefetch(skb->data); |
1529 | skb->dev = ndev; | 1536 | skb->dev = ndev; |
1530 | if (ib_mac_rsp->flags1 & IB_MAC_IOCB_RSP_M_MASK) { | 1537 | if (ib_mac_rsp->flags1 & IB_MAC_IOCB_RSP_M_MASK) { |
@@ -1547,7 +1554,6 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev, | |||
1547 | * csum or frame errors. | 1554 | * csum or frame errors. |
1548 | */ | 1555 | */ |
1549 | if (qdev->rx_csum && | 1556 | if (qdev->rx_csum && |
1550 | !(ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) && | ||
1551 | !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) { | 1557 | !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) { |
1552 | /* TCP frame. */ | 1558 | /* TCP frame. */ |
1553 | if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) { | 1559 | if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) { |