aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_gbl.h2
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c11
3 files changed, 14 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index d009c6fb5008..cd646ca92f8b 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -39,6 +39,8 @@ extern int qla81xx_load_risc(scsi_qla_host_t *, uint32_t *);
39extern int qla2x00_perform_loop_resync(scsi_qla_host_t *); 39extern int qla2x00_perform_loop_resync(scsi_qla_host_t *);
40extern int qla2x00_loop_resync(scsi_qla_host_t *); 40extern int qla2x00_loop_resync(scsi_qla_host_t *);
41 41
42extern int qla2x00_find_new_loop_id(scsi_qla_host_t *, fc_port_t *);
43
42extern int qla2x00_fabric_login(scsi_qla_host_t *, fc_port_t *, uint16_t *); 44extern int qla2x00_fabric_login(scsi_qla_host_t *, fc_port_t *, uint16_t *);
43extern int qla2x00_local_device_login(scsi_qla_host_t *, fc_port_t *); 45extern int qla2x00_local_device_login(scsi_qla_host_t *, fc_port_t *);
44 46
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 2c9f47aef229..234c1c28bf44 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -35,8 +35,6 @@ static int qla2x00_fabric_dev_login(scsi_qla_host_t *, fc_port_t *,
35 35
36static int qla2x00_restart_isp(scsi_qla_host_t *); 36static int qla2x00_restart_isp(scsi_qla_host_t *);
37 37
38static int qla2x00_find_new_loop_id(scsi_qla_host_t *, fc_port_t *);
39
40static struct qla_chip_state_84xx *qla84xx_get_chip(struct scsi_qla_host *); 38static struct qla_chip_state_84xx *qla84xx_get_chip(struct scsi_qla_host *);
41static int qla84xx_init_chip(scsi_qla_host_t *); 39static int qla84xx_init_chip(scsi_qla_host_t *);
42static int qla25xx_init_queues(struct qla_hw_data *); 40static int qla25xx_init_queues(struct qla_hw_data *);
@@ -3390,7 +3388,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha,
3390 * Context: 3388 * Context:
3391 * Kernel context. 3389 * Kernel context.
3392 */ 3390 */
3393static int 3391int
3394qla2x00_find_new_loop_id(scsi_qla_host_t *vha, fc_port_t *dev) 3392qla2x00_find_new_loop_id(scsi_qla_host_t *vha, fc_port_t *dev)
3395{ 3393{
3396 int rval; 3394 int rval;
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 2f039e018eef..d1b29dc9cba1 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3214,6 +3214,17 @@ void qla2x00_relogin(struct scsi_qla_host *vha)
3214 fcport->d_id.b.area, 3214 fcport->d_id.b.area,
3215 fcport->d_id.b.al_pa); 3215 fcport->d_id.b.al_pa);
3216 3216
3217 if (fcport->loop_id == FC_NO_LOOP_ID) {
3218 fcport->loop_id = next_loopid =
3219 ha->min_external_loopid;
3220 status = qla2x00_find_new_loop_id(
3221 vha, fcport);
3222 if (status != QLA_SUCCESS) {
3223 /* Ran out of IDs to use */
3224 break;
3225 }
3226 }
3227
3217 if (IS_ALOGIO_CAPABLE(ha)) { 3228 if (IS_ALOGIO_CAPABLE(ha)) {
3218 fcport->flags |= FCF_ASYNC_SENT; 3229 fcport->flags |= FCF_ASYNC_SENT;
3219 data[0] = 0; 3230 data[0] = 0;