Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 328856
b: refs/heads/master
c: bf5b8ad
h: refs/heads/master
v: v3
  • Loading branch information
Chad Dupuis authored and James Bottomley committed Sep 24, 2012
1 parent 1306b8c commit 733fa68
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e92e4a8f003910d985b5e5f721724b1e1327208b
refs/heads/master: bf5b8ad7bd7ad56fc4d4132996babb74443672d6
14 changes: 11 additions & 3 deletions trunk/drivers/scsi/qla2xxx/qla_bsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -568,9 +568,17 @@ qla81xx_set_loopback_mode(scsi_qla_host_t *vha, uint16_t *config,
if (!wait_for_completion_timeout(&ha->dcbx_comp, (20 * HZ))) {
ql_dbg(ql_dbg_user, vha, 0x7022,
"State change notification not received.\n");
} else
ql_dbg(ql_dbg_user, vha, 0x7023,
"State change received.\n");
rval = -EINVAL;
} else {
if (ha->flags.idc_compl_status) {
ql_dbg(ql_dbg_user, vha, 0x70c3,
"Bad status in IDC Completion AEN\n");
rval = -EINVAL;
ha->flags.idc_compl_status = 0;
} else
ql_dbg(ql_dbg_user, vha, 0x7023,
"State change received.\n");
}

ha->notify_dcbx_comp = 0;

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/scsi/qla2xxx/qla_dbg.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* | Async Events | 0x5071 | 0x502b-0x502f |
* | | | 0x5047,0x5052 |
* | Timer Routines | 0x6011 | |
* | User Space Interactions | 0x70c2 | 0x7018,0x702e, |
* | User Space Interactions | 0x70c3 | 0x7018,0x702e, |
* | | | 0x7039,0x7045, |
* | | | 0x7073-0x7075, |
* | | | 0x708c, |
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/scsi/qla2xxx/qla_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -2622,7 +2622,8 @@ struct qla_hw_data {
uint32_t nic_core_reset_owner:1;
uint32_t isp82xx_no_md_cap:1;
uint32_t host_shutting_down:1;
/* 30 bits */
uint32_t idc_compl_status:1;
/* 32 bits */
} flags;

/* This spinlock is used to protect "io transactions", you must
Expand Down
25 changes: 13 additions & 12 deletions trunk/drivers/scsi/qla2xxx/qla_isr.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,17 +294,20 @@ qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr)
"%04x %04x %04x %04x %04x %04x %04x.\n",
event[aen & 0xff], mb[0], mb[1], mb[2], mb[3],
mb[4], mb[5], mb[6]);
if ((aen == MBA_IDC_COMPLETE && mb[1] >> 15)) {
vha->hw->flags.idc_compl_status = 1;
if (vha->hw->notify_dcbx_comp)
complete(&vha->hw->dcbx_comp);
}

if (IS_QLA81XX(vha->hw)) {
/* Acknowledgement needed? [Notify && non-zero timeout]. */
timeout = (descr >> 8) & 0xf;
if (aen != MBA_IDC_NOTIFY || !timeout)
return;
/* Acknowledgement needed? [Notify && non-zero timeout]. */
timeout = (descr >> 8) & 0xf;
if (aen != MBA_IDC_NOTIFY || !timeout)
return;

ql_dbg(ql_dbg_async, vha, 0x5022,
"%lu Inter-Driver Communication %s -- ACK timeout=%d.\n",
vha->host_no, event[aen & 0xff], timeout);
}
ql_dbg(ql_dbg_async, vha, 0x5022,
"%lu Inter-Driver Communication %s -- ACK timeout=%d.\n",
vha->host_no, event[aen & 0xff], timeout);

rval = qla2x00_post_idc_ack_work(vha, mb);
if (rval != QLA_SUCCESS)
Expand Down Expand Up @@ -989,13 +992,11 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
if ((mb[2] & 0x7fff) == MBC_PORT_RESET ||
(mb[2] & 0x7fff) == MBC_SET_PORT_CONFIG) {
set_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags);
/* Ack that we have quiesced I/O */
qla81xx_idc_event(vha, mb[0], mb[1]);
qla2xxx_wake_dpc(vha);
}
case MBA_IDC_COMPLETE:
case MBA_IDC_TIME_EXT:
if (IS_QLA81XX(vha->hw))
if (IS_QLA81XX(vha->hw) || IS_QLA8031(vha->hw))
qla81xx_idc_event(vha, mb[0], mb[1]);
break;

Expand Down

0 comments on commit 733fa68

Please sign in to comment.