aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_erp.c13
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c2
2 files changed, 3 insertions, 12 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 066f9ea67502..e003e306f870 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -644,17 +644,6 @@ static void zfcp_erp_wakeup(struct zfcp_adapter *adapter)
644 read_unlock_irqrestore(&adapter->erp_lock, flags); 644 read_unlock_irqrestore(&adapter->erp_lock, flags);
645} 645}
646 646
647static int zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *act)
648{
649 struct zfcp_qdio *qdio = act->adapter->qdio;
650
651 if (zfcp_qdio_open(qdio))
652 return ZFCP_ERP_FAILED;
653 init_waitqueue_head(&qdio->req_q_wq);
654 atomic_set_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &act->adapter->status);
655 return ZFCP_ERP_SUCCEEDED;
656}
657
658static void zfcp_erp_enqueue_ptp_port(struct zfcp_adapter *adapter) 647static void zfcp_erp_enqueue_ptp_port(struct zfcp_adapter *adapter)
659{ 648{
660 struct zfcp_port *port; 649 struct zfcp_port *port;
@@ -778,7 +767,7 @@ static int zfcp_erp_adapter_strategy_open(struct zfcp_erp_action *act)
778{ 767{
779 struct zfcp_adapter *adapter = act->adapter; 768 struct zfcp_adapter *adapter = act->adapter;
780 769
781 if (zfcp_erp_adapter_strategy_open_qdio(act)) { 770 if (zfcp_qdio_open(adapter->qdio)) {
782 atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK | 771 atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK |
783 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, 772 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED,
784 &adapter->status); 773 &adapter->status);
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index d99c9dc9cfcb..2511f92302dd 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -307,6 +307,7 @@ static int zfcp_qdio_allocate(struct zfcp_qdio *qdio)
307 return -ENOMEM; 307 return -ENOMEM;
308 308
309 zfcp_qdio_setup_init_data(&init_data, qdio); 309 zfcp_qdio_setup_init_data(&init_data, qdio);
310 init_waitqueue_head(&qdio->req_q_wq);
310 311
311 return qdio_allocate(&init_data); 312 return qdio_allocate(&init_data);
312} 313}
@@ -391,6 +392,7 @@ int zfcp_qdio_open(struct zfcp_qdio *qdio)
391 /* set index of first avalable SBALS / number of available SBALS */ 392 /* set index of first avalable SBALS / number of available SBALS */
392 qdio->req_q_idx = 0; 393 qdio->req_q_idx = 0;
393 atomic_set(&qdio->req_q_free, QDIO_MAX_BUFFERS_PER_Q); 394 atomic_set(&qdio->req_q_free, QDIO_MAX_BUFFERS_PER_Q);
395 atomic_set_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &qdio->adapter->status);
394 396
395 return 0; 397 return 0;
396 398