[SCSI] qla2xxx: Limit the logs in case device state does not change for ISP82xx.
authorGiridhar Malavali <giridhar.malavali@qlogic.com>
Wed, 30 Mar 2011 18:46:30 +0000 (11:46 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 1 May 2011 15:13:55 +0000 (10:13 -0500)
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/qla2xxx/qla_nx.c

index a62856e..acd1ad3 100644 (file)
@@ -3543,15 +3543,18 @@ int
 qla82xx_device_state_handler(scsi_qla_host_t *vha)
 {
        uint32_t dev_state;
+       uint32_t old_dev_state;
        int rval = QLA_SUCCESS;
        unsigned long dev_init_timeout;
        struct qla_hw_data *ha = vha->hw;
+       int loopcount = 0;
 
        qla82xx_idc_lock(ha);
        if (!vha->flags.init_done)
                qla82xx_set_drv_active(vha);
 
        dev_state = qla82xx_rd_32(ha, QLA82XX_CRB_DEV_STATE);
+       old_dev_state = dev_state;
        qla_printk(KERN_INFO, ha, "1:Device state is 0x%x = %s\n", dev_state,
                dev_state < MAX_STATES ? qdev_state[dev_state] : "Unknown");
 
@@ -3568,10 +3571,16 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha)
                        break;
                }
                dev_state = qla82xx_rd_32(ha, QLA82XX_CRB_DEV_STATE);
-               qla_printk(KERN_INFO, ha,
-                       "2:Device state is 0x%x = %s\n", dev_state,
-                       dev_state < MAX_STATES ?
-                       qdev_state[dev_state] : "Unknown");
+               if (old_dev_state != dev_state) {
+                       loopcount = 0;
+                       old_dev_state = dev_state;
+               }
+               if (loopcount < 5) {
+                       qla_printk(KERN_INFO, ha,
+                           "2:Device state is 0x%x = %s\n", dev_state,
+                           dev_state < MAX_STATES ?
+                           qdev_state[dev_state] : "Unknown");
+               }
 
                switch (dev_state) {
                case QLA82XX_DEV_READY:
@@ -3620,6 +3629,7 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha)
                        msleep(1000);
                        qla82xx_idc_lock(ha);
                }
+               loopcount++;
        }
 exit:
        qla82xx_idc_unlock(ha);