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 c3fe1c7..ea15131 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: