diff options
| -rw-r--r-- | drivers/s390/scsi/zfcp_def.h | 1 | ||||
| -rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 11 | ||||
| -rw-r--r-- | drivers/s390/scsi/zfcp_scsi.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/pcmcia/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/scsi/scsi_devinfo.c | 1 | ||||
| -rw-r--r-- | drivers/scsi/scsi_transport_fc.c | 2 |
6 files changed, 16 insertions, 8 deletions
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h index 7f551d66f47f..6eba56cd89ba 100644 --- a/drivers/s390/scsi/zfcp_def.h +++ b/drivers/s390/scsi/zfcp_def.h | |||
| @@ -664,6 +664,7 @@ do { \ | |||
| 664 | #define ZFCP_STATUS_UNIT_TEMPORARY 0x00000002 | 664 | #define ZFCP_STATUS_UNIT_TEMPORARY 0x00000002 |
| 665 | #define ZFCP_STATUS_UNIT_SHARED 0x00000004 | 665 | #define ZFCP_STATUS_UNIT_SHARED 0x00000004 |
| 666 | #define ZFCP_STATUS_UNIT_READONLY 0x00000008 | 666 | #define ZFCP_STATUS_UNIT_READONLY 0x00000008 |
| 667 | #define ZFCP_STATUS_UNIT_REGISTERED 0x00000010 | ||
| 667 | 668 | ||
| 668 | /* FSF request status (this does not have a common part) */ | 669 | /* FSF request status (this does not have a common part) */ |
| 669 | #define ZFCP_STATUS_FSFREQ_NOT_INIT 0x00000000 | 670 | #define ZFCP_STATUS_FSFREQ_NOT_INIT 0x00000000 |
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index e3c4bdd29a60..57cb628a05aa 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
| @@ -3391,10 +3391,13 @@ zfcp_erp_action_cleanup(int action, struct zfcp_adapter *adapter, | |||
| 3391 | && (!atomic_test_mask(ZFCP_STATUS_UNIT_TEMPORARY, | 3391 | && (!atomic_test_mask(ZFCP_STATUS_UNIT_TEMPORARY, |
| 3392 | &unit->status)) | 3392 | &unit->status)) |
| 3393 | && !unit->device | 3393 | && !unit->device |
| 3394 | && port->rport) | 3394 | && port->rport) { |
| 3395 | scsi_add_device(port->adapter->scsi_host, 0, | 3395 | atomic_set_mask(ZFCP_STATUS_UNIT_REGISTERED, |
| 3396 | port->rport->scsi_target_id, | 3396 | &unit->status); |
| 3397 | unit->scsi_lun); | 3397 | scsi_scan_target(&port->rport->dev, 0, |
| 3398 | port->rport->scsi_target_id, | ||
| 3399 | unit->scsi_lun, 0); | ||
| 3400 | } | ||
| 3398 | zfcp_unit_put(unit); | 3401 | zfcp_unit_put(unit); |
| 3399 | break; | 3402 | break; |
| 3400 | case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: | 3403 | case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: |
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c index 9f6b4d7a46f3..9e6d07d7b3c8 100644 --- a/drivers/s390/scsi/zfcp_scsi.c +++ b/drivers/s390/scsi/zfcp_scsi.c | |||
| @@ -68,7 +68,7 @@ struct zfcp_data zfcp_data = { | |||
| 68 | eh_host_reset_handler: zfcp_scsi_eh_host_reset_handler, | 68 | eh_host_reset_handler: zfcp_scsi_eh_host_reset_handler, |
| 69 | /* FIXME(openfcp): Tune */ | 69 | /* FIXME(openfcp): Tune */ |
| 70 | can_queue: 4096, | 70 | can_queue: 4096, |
| 71 | this_id: 0, | 71 | this_id: -1, |
| 72 | /* | 72 | /* |
| 73 | * FIXME: | 73 | * FIXME: |
| 74 | * one less? can zfcp_create_sbale cope with it? | 74 | * one less? can zfcp_create_sbale cope with it? |
| @@ -183,7 +183,8 @@ zfcp_scsi_slave_alloc(struct scsi_device *sdp) | |||
| 183 | 183 | ||
| 184 | read_lock_irqsave(&zfcp_data.config_lock, flags); | 184 | read_lock_irqsave(&zfcp_data.config_lock, flags); |
| 185 | unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun); | 185 | unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun); |
| 186 | if (unit) { | 186 | if (unit && atomic_test_mask(ZFCP_STATUS_UNIT_REGISTERED, |
| 187 | &unit->status)) { | ||
| 187 | sdp->hostdata = unit; | 188 | sdp->hostdata = unit; |
| 188 | unit->device = sdp; | 189 | unit->device = sdp; |
| 189 | zfcp_unit_get(unit); | 190 | zfcp_unit_get(unit); |
| @@ -208,6 +209,7 @@ zfcp_scsi_slave_destroy(struct scsi_device *sdpnt) | |||
| 208 | struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; | 209 | struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; |
| 209 | 210 | ||
| 210 | if (unit) { | 211 | if (unit) { |
| 212 | atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status); | ||
| 211 | sdpnt->hostdata = NULL; | 213 | sdpnt->hostdata = NULL; |
| 212 | unit->device = NULL; | 214 | unit->device = NULL; |
| 213 | zfcp_unit_put(unit); | 215 | zfcp_unit_put(unit); |
| @@ -291,7 +293,7 @@ zfcp_scsi_command_async(struct zfcp_adapter *adapter, struct zfcp_unit *unit, | |||
| 291 | "on port 0x%016Lx in recovery\n", | 293 | "on port 0x%016Lx in recovery\n", |
| 292 | zfcp_get_busid_by_unit(unit), | 294 | zfcp_get_busid_by_unit(unit), |
| 293 | unit->fcp_lun, unit->port->wwpn); | 295 | unit->fcp_lun, unit->port->wwpn); |
| 294 | retval = SCSI_MLQUEUE_DEVICE_BUSY; | 296 | zfcp_scsi_command_fail(scpnt, DID_NO_CONNECT); |
| 295 | goto out; | 297 | goto out; |
| 296 | } | 298 | } |
| 297 | 299 | ||
diff --git a/drivers/scsi/pcmcia/Kconfig b/drivers/scsi/pcmcia/Kconfig index df52190f4d94..eac8e179cfff 100644 --- a/drivers/scsi/pcmcia/Kconfig +++ b/drivers/scsi/pcmcia/Kconfig | |||
| @@ -8,6 +8,7 @@ menu "PCMCIA SCSI adapter support" | |||
| 8 | config PCMCIA_AHA152X | 8 | config PCMCIA_AHA152X |
| 9 | tristate "Adaptec AHA152X PCMCIA support" | 9 | tristate "Adaptec AHA152X PCMCIA support" |
| 10 | depends on m && !64BIT | 10 | depends on m && !64BIT |
| 11 | select SCSI_SPI_ATTRS | ||
| 11 | help | 12 | help |
| 12 | Say Y here if you intend to attach this type of PCMCIA SCSI host | 13 | Say Y here if you intend to attach this type of PCMCIA SCSI host |
| 13 | adapter to your computer. | 14 | adapter to your computer. |
diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c index f01ec0a7c506..84c3937ae8fb 100644 --- a/drivers/scsi/scsi_devinfo.c +++ b/drivers/scsi/scsi_devinfo.c | |||
| @@ -126,6 +126,7 @@ static struct { | |||
| 126 | {"ADAPTEC", "Adaptec 5400S", NULL, BLIST_FORCELUN}, | 126 | {"ADAPTEC", "Adaptec 5400S", NULL, BLIST_FORCELUN}, |
| 127 | {"AFT PRO", "-IX CF", "0.0>", BLIST_FORCELUN}, | 127 | {"AFT PRO", "-IX CF", "0.0>", BLIST_FORCELUN}, |
| 128 | {"BELKIN", "USB 2 HS-CF", "1.95", BLIST_FORCELUN | BLIST_INQUIRY_36}, | 128 | {"BELKIN", "USB 2 HS-CF", "1.95", BLIST_FORCELUN | BLIST_INQUIRY_36}, |
| 129 | {"BROWNIE", "1600U3P", NULL, BLIST_NOREPORTLUN}, | ||
| 129 | {"CANON", "IPUBJD", NULL, BLIST_SPARSELUN}, | 130 | {"CANON", "IPUBJD", NULL, BLIST_SPARSELUN}, |
| 130 | {"CBOX3", "USB Storage-SMC", "300A", BLIST_FORCELUN | BLIST_INQUIRY_36}, | 131 | {"CBOX3", "USB Storage-SMC", "300A", BLIST_FORCELUN | BLIST_INQUIRY_36}, |
| 131 | {"CMD", "CRA-7280", NULL, BLIST_SPARSELUN}, /* CMD RAID Controller */ | 132 | {"CMD", "CRA-7280", NULL, BLIST_SPARSELUN}, /* CMD RAID Controller */ |
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index 929032e370db..13ea64119b73 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c | |||
| @@ -223,7 +223,7 @@ static void fc_rport_terminate(struct fc_rport *rport); | |||
| 223 | */ | 223 | */ |
| 224 | #define FC_STARGET_NUM_ATTRS 3 | 224 | #define FC_STARGET_NUM_ATTRS 3 |
| 225 | #define FC_RPORT_NUM_ATTRS 9 | 225 | #define FC_RPORT_NUM_ATTRS 9 |
| 226 | #define FC_HOST_NUM_ATTRS 16 | 226 | #define FC_HOST_NUM_ATTRS 17 |
| 227 | 227 | ||
| 228 | struct fc_internal { | 228 | struct fc_internal { |
| 229 | struct scsi_transport_template t; | 229 | struct scsi_transport_template t; |
