diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-09 21:54:06 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-09 21:54:06 -0400 |
| commit | 1c54fc1efe6922b4e7ffd591739d72050976ccd6 (patch) | |
| tree | 0f7f0eaa91fa06bba11da240915eb6a4040b482a /drivers/scsi/qla2xxx/qla_isr.c | |
| parent | f4f9b8fc73f9aa93744f0e91e18f367d7766f523 (diff) | |
| parent | b4c43993f448d0e25fe40690d9e9c81a8ebda623 (diff) | |
Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley:
"This patch consists of the usual driver updates (qla2xxx, qla4xxx,
lpfc, be2iscsi, fnic, ufs, NCR5380) The NCR5380 is the addition to
maintained status of a long neglected driver for older hardware. In
addition there are a lot of minor fixes and cleanups and some more
updates to make scsi mq ready"
* tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (130 commits)
include/scsi/osd_protocol.h: remove unnecessary __constant
mvsas: Recognise device/subsystem 9485/9485 as 88SE9485
Revert "be2iscsi: Fix processing cqe for cxn whose endpoint is freed"
mptfusion: fix msgContext in mptctl_hp_hostinfo
acornscsi: remove linked command support
scsi/NCR5380: dprintk macro
fusion: Remove use of DEF_SCSI_QCMD
fusion: Add free msg frames to the head, not tail of list
mpt2sas: Add free smids to the head, not tail of list
mpt2sas: Remove use of DEF_SCSI_QCMD
mpt2sas: Remove uses of serial_number
mpt3sas: Remove use of DEF_SCSI_QCMD
mpt3sas: Remove uses of serial_number
qla2xxx: Use kmemdup instead of kmalloc + memcpy
qla4xxx: Use kmemdup instead of kmalloc + memcpy
qla2xxx: fix incorrect debug printk
be2iscsi: Bump the driver version
be2iscsi: Fix processing cqe for cxn whose endpoint is freed
be2iscsi: Fix destroy MCC-CQ before MCC-EQ is destroyed
be2iscsi: Fix memory corruption in MBX path
...
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 95314ef2e505..a56825c73c31 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * QLogic Fibre Channel HBA Driver | 2 | * QLogic Fibre Channel HBA Driver |
| 3 | * Copyright (c) 2003-2013 QLogic Corporation | 3 | * Copyright (c) 2003-2014 QLogic Corporation |
| 4 | * | 4 | * |
| 5 | * See LICENSE.qla2xxx for copyright and licensing details. | 5 | * See LICENSE.qla2xxx for copyright and licensing details. |
| 6 | */ | 6 | */ |
| @@ -2009,11 +2009,13 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) | |||
| 2009 | ql_dbg(ql_dbg_io, vha, 0x3017, | 2009 | ql_dbg(ql_dbg_io, vha, 0x3017, |
| 2010 | "Invalid status handle (0x%x).\n", sts->handle); | 2010 | "Invalid status handle (0x%x).\n", sts->handle); |
| 2011 | 2011 | ||
| 2012 | if (IS_P3P_TYPE(ha)) | 2012 | if (!test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags)) { |
| 2013 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); | 2013 | if (IS_P3P_TYPE(ha)) |
| 2014 | else | 2014 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); |
| 2015 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); | 2015 | else |
| 2016 | qla2xxx_wake_dpc(vha); | 2016 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); |
| 2017 | qla2xxx_wake_dpc(vha); | ||
| 2018 | } | ||
| 2017 | return; | 2019 | return; |
| 2018 | } | 2020 | } |
| 2019 | 2021 | ||
| @@ -2472,12 +2474,14 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, | |||
| 2472 | if (pkt->entry_status != 0) { | 2474 | if (pkt->entry_status != 0) { |
| 2473 | qla2x00_error_entry(vha, rsp, (sts_entry_t *) pkt); | 2475 | qla2x00_error_entry(vha, rsp, (sts_entry_t *) pkt); |
| 2474 | 2476 | ||
| 2475 | (void)qlt_24xx_process_response_error(vha, pkt); | 2477 | if (qlt_24xx_process_response_error(vha, pkt)) |
| 2478 | goto process_err; | ||
| 2476 | 2479 | ||
| 2477 | ((response_t *)pkt)->signature = RESPONSE_PROCESSED; | 2480 | ((response_t *)pkt)->signature = RESPONSE_PROCESSED; |
| 2478 | wmb(); | 2481 | wmb(); |
| 2479 | continue; | 2482 | continue; |
| 2480 | } | 2483 | } |
| 2484 | process_err: | ||
| 2481 | 2485 | ||
| 2482 | switch (pkt->entry_type) { | 2486 | switch (pkt->entry_type) { |
| 2483 | case STATUS_TYPE: | 2487 | case STATUS_TYPE: |
| @@ -2494,10 +2498,10 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, | |||
| 2494 | qla24xx_logio_entry(vha, rsp->req, | 2498 | qla24xx_logio_entry(vha, rsp->req, |
| 2495 | (struct logio_entry_24xx *)pkt); | 2499 | (struct logio_entry_24xx *)pkt); |
| 2496 | break; | 2500 | break; |
| 2497 | case CT_IOCB_TYPE: | 2501 | case CT_IOCB_TYPE: |
| 2498 | qla24xx_els_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE); | 2502 | qla24xx_els_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE); |
| 2499 | break; | 2503 | break; |
| 2500 | case ELS_IOCB_TYPE: | 2504 | case ELS_IOCB_TYPE: |
| 2501 | qla24xx_els_ct_entry(vha, rsp->req, pkt, ELS_IOCB_TYPE); | 2505 | qla24xx_els_ct_entry(vha, rsp->req, pkt, ELS_IOCB_TYPE); |
| 2502 | break; | 2506 | break; |
| 2503 | case ABTS_RECV_24XX: | 2507 | case ABTS_RECV_24XX: |
| @@ -2506,6 +2510,7 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, | |||
| 2506 | case ABTS_RESP_24XX: | 2510 | case ABTS_RESP_24XX: |
| 2507 | case CTIO_TYPE7: | 2511 | case CTIO_TYPE7: |
| 2508 | case NOTIFY_ACK_TYPE: | 2512 | case NOTIFY_ACK_TYPE: |
| 2513 | case CTIO_CRC2: | ||
| 2509 | qlt_response_pkt_all_vps(vha, (response_t *)pkt); | 2514 | qlt_response_pkt_all_vps(vha, (response_t *)pkt); |
| 2510 | break; | 2515 | break; |
| 2511 | case MARKER_TYPE: | 2516 | case MARKER_TYPE: |
