[SCSI] qla2xxx: Correct vp_idx checking during PORT_UPDATE processing.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Fri, 19 Mar 2010 23:59:17 +0000 (16:59 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 27 Mar 2010 19:11:30 +0000 (15:11 -0400)
Checks should only be done for NPIV-capable ISPs.  Original code
could result in PORT_UPDATEs being missed on non-NPIV-capable
ISPs.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/qla2xxx/qla_isr.c

index ab90329ff2e4877ce57ccd15e1a7ee28ab5acd9f..295337d1fcb867babcedb4ced77aa21120665280 100644 (file)
@@ -620,11 +620,10 @@ skip_rio:
                 *           vp_idx does not match
                 *       Event is not global, vp_idx does not match
                 */
-               if ((mb[1] == 0xffff && (mb[3] & 0xff) != 0xff)
-                       || (mb[1] != 0xffff)) {
-                       if (vha->vp_idx != (mb[3] & 0xff))
-                               break;
-               }
+               if (IS_QLA2XXX_MIDTYPE(ha) &&
+                   ((mb[1] == 0xffff && (mb[3] & 0xff) != 0xff) ||
+                       (mb[1] != 0xffff)) && vha->vp_idx != (mb[3] & 0xff))
+                       break;
 
                /* Global event -- port logout or port unavailable. */
                if (mb[1] == 0xffff && mb[2] == 0x7) {