aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index e0e43d9e7ed1..7f77898486a9 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1240,12 +1240,6 @@ qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req,
1240 case LSC_SCODE_NPORT_USED: 1240 case LSC_SCODE_NPORT_USED:
1241 data[0] = MBS_LOOP_ID_USED; 1241 data[0] = MBS_LOOP_ID_USED;
1242 break; 1242 break;
1243 case LSC_SCODE_CMD_FAILED:
1244 if ((iop[1] & 0xff) == 0x05) {
1245 data[0] = MBS_NOT_LOGGED_IN;
1246 break;
1247 }
1248 /* Fall through. */
1249 default: 1243 default:
1250 data[0] = MBS_COMMAND_ERROR; 1244 data[0] = MBS_COMMAND_ERROR;
1251 break; 1245 break;
@@ -1431,9 +1425,8 @@ qla2x00_handle_sense(srb_t *sp, uint8_t *sense_data, uint32_t par_sense_len,
1431 rsp->status_srb = sp; 1425 rsp->status_srb = sp;
1432 1426
1433 DEBUG5(printk("%s(): Check condition Sense data, scsi(%ld:%d:%d:%d) " 1427 DEBUG5(printk("%s(): Check condition Sense data, scsi(%ld:%d:%d:%d) "
1434 "cmd=%p pid=%ld\n", __func__, sp->fcport->vha->host_no, 1428 "cmd=%p\n", __func__, sp->fcport->vha->host_no,
1435 cp->device->channel, cp->device->id, cp->device->lun, cp, 1429 cp->device->channel, cp->device->id, cp->device->lun, cp));
1436 cp->serial_number));
1437 if (sense_len) 1430 if (sense_len)
1438 DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, sense_len)); 1431 DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, sense_len));
1439} 1432}
@@ -1757,6 +1750,8 @@ check_scsi_status:
1757 case CS_INCOMPLETE: 1750 case CS_INCOMPLETE:
1758 case CS_PORT_UNAVAILABLE: 1751 case CS_PORT_UNAVAILABLE:
1759 case CS_TIMEOUT: 1752 case CS_TIMEOUT:
1753 case CS_RESET:
1754
1760 /* 1755 /*
1761 * We are going to have the fc class block the rport 1756 * We are going to have the fc class block the rport
1762 * while we try to recover so instruct the mid layer 1757 * while we try to recover so instruct the mid layer
@@ -1781,10 +1776,6 @@ check_scsi_status:
1781 qla2x00_mark_device_lost(fcport->vha, fcport, 1, 1); 1776 qla2x00_mark_device_lost(fcport->vha, fcport, 1, 1);
1782 break; 1777 break;
1783 1778
1784 case CS_RESET:
1785 cp->result = DID_TRANSPORT_DISRUPTED << 16;
1786 break;
1787
1788 case CS_ABORTED: 1779 case CS_ABORTED:
1789 cp->result = DID_RESET << 16; 1780 cp->result = DID_RESET << 16;
1790 break; 1781 break;
@@ -1801,10 +1792,10 @@ out:
1801 if (logit) 1792 if (logit)
1802 DEBUG2(qla_printk(KERN_INFO, ha, 1793 DEBUG2(qla_printk(KERN_INFO, ha,
1803 "scsi(%ld:%d:%d) FCP command status: 0x%x-0x%x (0x%x) " 1794 "scsi(%ld:%d:%d) FCP command status: 0x%x-0x%x (0x%x) "
1804 "oxid=0x%x ser=0x%lx cdb=%02x%02x%02x len=0x%x " 1795 "oxid=0x%x cdb=%02x%02x%02x len=0x%x "
1805 "rsp_info=0x%x resid=0x%x fw_resid=0x%x\n", vha->host_no, 1796 "rsp_info=0x%x resid=0x%x fw_resid=0x%x\n", vha->host_no,
1806 cp->device->id, cp->device->lun, comp_status, scsi_status, 1797 cp->device->id, cp->device->lun, comp_status, scsi_status,
1807 cp->result, ox_id, cp->serial_number, cp->cmnd[0], 1798 cp->result, ox_id, cp->cmnd[0],
1808 cp->cmnd[1], cp->cmnd[2], scsi_bufflen(cp), rsp_info_len, 1799 cp->cmnd[1], cp->cmnd[2], scsi_bufflen(cp), rsp_info_len,
1809 resid_len, fw_resid_len)); 1800 resid_len, fw_resid_len));
1810 1801
@@ -2500,14 +2491,15 @@ skip_msix:
2500skip_msi: 2491skip_msi:
2501 2492
2502 ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, 2493 ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler,
2503 IRQF_SHARED, QLA2XXX_DRIVER_NAME, rsp); 2494 ha->flags.msi_enabled ? 0 : IRQF_SHARED,
2495 QLA2XXX_DRIVER_NAME, rsp);
2504 if (ret) { 2496 if (ret) {
2505 qla_printk(KERN_WARNING, ha, 2497 qla_printk(KERN_WARNING, ha,
2506 "Failed to reserve interrupt %d already in use.\n", 2498 "Failed to reserve interrupt %d already in use.\n",
2507 ha->pdev->irq); 2499 ha->pdev->irq);
2508 goto fail; 2500 goto fail;
2509 } 2501 }
2510 ha->flags.inta_enabled = 1; 2502
2511clear_risc_ints: 2503clear_risc_ints:
2512 2504
2513 /* 2505 /*