diff options
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvscsi.c')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvscsi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c index eaefeddb2b4a..a279d0a8dff5 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c | |||
@@ -853,14 +853,15 @@ static int send_srp_login(struct ibmvscsi_host_data *hostdata) | |||
853 | login->max_requested_initiator_to_target_iulen = sizeof(union srp_iu); | 853 | login->max_requested_initiator_to_target_iulen = sizeof(union srp_iu); |
854 | login->required_buffer_formats = 0x0006; | 854 | login->required_buffer_formats = 0x0006; |
855 | 855 | ||
856 | spin_lock_irqsave(hostdata->host->host_lock, flags); | ||
856 | /* Start out with a request limit of 1, since this is negotiated in | 857 | /* Start out with a request limit of 1, since this is negotiated in |
857 | * the login request we are just sending | 858 | * the login request we are just sending |
858 | */ | 859 | */ |
859 | atomic_set(&hostdata->request_limit, 1); | 860 | atomic_set(&hostdata->request_limit, 1); |
860 | 861 | ||
861 | spin_lock_irqsave(hostdata->host->host_lock, flags); | ||
862 | rc = ibmvscsi_send_srp_event(evt_struct, hostdata); | 862 | rc = ibmvscsi_send_srp_event(evt_struct, hostdata); |
863 | spin_unlock_irqrestore(hostdata->host->host_lock, flags); | 863 | spin_unlock_irqrestore(hostdata->host->host_lock, flags); |
864 | printk("ibmvscsic: sent SRP login\n"); | ||
864 | return rc; | 865 | return rc; |
865 | }; | 866 | }; |
866 | 867 | ||
@@ -1179,6 +1180,7 @@ void ibmvscsi_handle_crq(struct viosrp_crq *crq, | |||
1179 | /* We need to re-setup the interpartition connection */ | 1180 | /* We need to re-setup the interpartition connection */ |
1180 | printk(KERN_INFO | 1181 | printk(KERN_INFO |
1181 | "ibmvscsi: Re-enabling adapter!\n"); | 1182 | "ibmvscsi: Re-enabling adapter!\n"); |
1183 | atomic_set(&hostdata->request_limit, -1); | ||
1182 | purge_requests(hostdata, DID_REQUEUE); | 1184 | purge_requests(hostdata, DID_REQUEUE); |
1183 | if (ibmvscsi_reenable_crq_queue(&hostdata->queue, | 1185 | if (ibmvscsi_reenable_crq_queue(&hostdata->queue, |
1184 | hostdata) == 0) | 1186 | hostdata) == 0) |