diff options
author | Sarang Radke <sarang.radke@qlogic.com> | 2012-01-11 05:44:18 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-01-16 03:33:24 -0500 |
commit | 787649993230eb1d6fc326f13be285a840092538 (patch) | |
tree | e3d6b283cac4d6f4fc99e067fdef4e13523e6785 /drivers/scsi/qla4xxx | |
parent | 527c8b2e962d21baa38a96b22e1bf50a47fdf4fb (diff) |
[SCSI] qla4xxx: Clear the RISC interrupt bit during FW init
This patch fix kernel panic during kdump.
Signed-off-by: Sarang Radke <sarang.radke@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla4xxx')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_init.c | 3 | ||||
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_nx.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c index 1bdfa8120ac8..90614f38b55d 100644 --- a/drivers/scsi/qla4xxx/ql4_init.c +++ b/drivers/scsi/qla4xxx/ql4_init.c | |||
@@ -697,6 +697,9 @@ int qla4xxx_start_firmware(struct scsi_qla_host *ha) | |||
697 | writel(set_rmask(CSR_SCSI_PROCESSOR_INTR), | 697 | writel(set_rmask(CSR_SCSI_PROCESSOR_INTR), |
698 | &ha->reg->ctrl_status); | 698 | &ha->reg->ctrl_status); |
699 | readl(&ha->reg->ctrl_status); | 699 | readl(&ha->reg->ctrl_status); |
700 | writel(set_rmask(CSR_SCSI_COMPLETION_INTR), | ||
701 | &ha->reg->ctrl_status); | ||
702 | readl(&ha->reg->ctrl_status); | ||
700 | spin_unlock_irqrestore(&ha->hardware_lock, flags); | 703 | spin_unlock_irqrestore(&ha->hardware_lock, flags); |
701 | if (qla4xxx_get_firmware_state(ha) == QLA_SUCCESS) { | 704 | if (qla4xxx_get_firmware_state(ha) == QLA_SUCCESS) { |
702 | DEBUG2(printk("scsi%ld: %s: Get firmware " | 705 | DEBUG2(printk("scsi%ld: %s: Get firmware " |
diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c index 8d6bc1b2ff17..78f1111158d7 100644 --- a/drivers/scsi/qla4xxx/ql4_nx.c +++ b/drivers/scsi/qla4xxx/ql4_nx.c | |||
@@ -1875,6 +1875,11 @@ exit: | |||
1875 | int qla4_8xxx_load_risc(struct scsi_qla_host *ha) | 1875 | int qla4_8xxx_load_risc(struct scsi_qla_host *ha) |
1876 | { | 1876 | { |
1877 | int retval; | 1877 | int retval; |
1878 | |||
1879 | /* clear the interrupt */ | ||
1880 | writel(0, &ha->qla4_8xxx_reg->host_int); | ||
1881 | readl(&ha->qla4_8xxx_reg->host_int); | ||
1882 | |||
1878 | retval = qla4_8xxx_device_state_handler(ha); | 1883 | retval = qla4_8xxx_device_state_handler(ha); |
1879 | 1884 | ||
1880 | if (retval == QLA_SUCCESS && !test_bit(AF_INIT_DONE, &ha->flags)) | 1885 | if (retval == QLA_SUCCESS && !test_bit(AF_INIT_DONE, &ha->flags)) |