]> err.no Git - linux-2.6/commitdiff
qla3xxx: bugfix: Fix VLAN rx completion handling.
authorRon Mercer <ron.mercer@qlogic.com>
Mon, 1 Oct 2007 18:43:23 +0000 (11:43 -0700)
committerJeff Garzik <jeff@garzik.org>
Tue, 2 Oct 2007 16:55:10 +0000 (12:55 -0400)
Fix 4032 chip undocumented "feature" where bit-8 is set
if the inbound completion is for a VLAN.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/qla3xxx.c

index c3fe1c7c301ca9d3421701c92426c7b32955b8e7..ea151315050c382ff096696d7ae2a3abd2a54949 100755 (executable)
@@ -2249,6 +2249,12 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev,
 
                net_rsp = qdev->rsp_current;
                rmb();
+               /*
+                * Fix 4032 chipe undocumented "feature" where bit-8 is set if the
+                * inbound completion is for a VLAN.
+                */
+               if (qdev->device_id == QL3032_DEVICE_ID)
+                       net_rsp->opcode &= 0x7f;
                switch (net_rsp->opcode) {
 
                case OPCODE_OB_MAC_IOCB_FN0: