diff options
author | Brian King <brking@linux.vnet.ibm.com> | 2008-07-22 09:31:46 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-07-26 15:14:58 -0400 |
commit | 52d7e861cc071688f5fa3ee1b6e94785adeff8db (patch) | |
tree | c2055d400a73da08848db5ef09702a4467155147 | |
parent | 2d0da2a44e065a5bdd90bed2ebe0b9216c27f682 (diff) |
[SCSI] ibmvfc: Miscellaneous fixes
Properly setup the size of the async event queue. This fixes a bug where async events
were not getting processed by the driver.
Setup target_id field in the driver's target struct so that target sysfs attributes
work for multiple targets.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index f1e5fac1c1dd..1917acb9102e 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c | |||
@@ -1136,7 +1136,7 @@ static void ibmvfc_set_login_info(struct ibmvfc_host *vhost) | |||
1136 | login_info->max_cmds = max_requests + IBMVFC_NUM_INTERNAL_REQ; | 1136 | login_info->max_cmds = max_requests + IBMVFC_NUM_INTERNAL_REQ; |
1137 | login_info->capabilities = IBMVFC_CAN_MIGRATE; | 1137 | login_info->capabilities = IBMVFC_CAN_MIGRATE; |
1138 | login_info->async.va = vhost->async_crq.msg_token; | 1138 | login_info->async.va = vhost->async_crq.msg_token; |
1139 | login_info->async.len = vhost->async_crq.size; | 1139 | login_info->async.len = vhost->async_crq.size * sizeof(*vhost->async_crq.msgs); |
1140 | strncpy(login_info->partition_name, vhost->partition_name, IBMVFC_MAX_NAME); | 1140 | strncpy(login_info->partition_name, vhost->partition_name, IBMVFC_MAX_NAME); |
1141 | strncpy(login_info->device_name, | 1141 | strncpy(login_info->device_name, |
1142 | vhost->host->shost_gendev.bus_id, IBMVFC_MAX_NAME); | 1142 | vhost->host->shost_gendev.bus_id, IBMVFC_MAX_NAME); |
@@ -3348,6 +3348,7 @@ static void ibmvfc_tgt_add_rport(struct ibmvfc_target *tgt) | |||
3348 | tgt_dbg(tgt, "rport add succeeded\n"); | 3348 | tgt_dbg(tgt, "rport add succeeded\n"); |
3349 | rport->maxframe_size = tgt->service_parms.common.bb_rcv_sz & 0x0fff; | 3349 | rport->maxframe_size = tgt->service_parms.common.bb_rcv_sz & 0x0fff; |
3350 | rport->supported_classes = 0; | 3350 | rport->supported_classes = 0; |
3351 | tgt->target_id = rport->scsi_target_id; | ||
3351 | if (tgt->service_parms.class1_parms[0] & 0x80000000) | 3352 | if (tgt->service_parms.class1_parms[0] & 0x80000000) |
3352 | rport->supported_classes |= FC_COS_CLASS1; | 3353 | rport->supported_classes |= FC_COS_CLASS1; |
3353 | if (tgt->service_parms.class2_parms[0] & 0x80000000) | 3354 | if (tgt->service_parms.class2_parms[0] & 0x80000000) |