aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_aux.c
diff options
context:
space:
mode:
authorSven Schuetz <sven@linux.vnet.ibm.com>2009-04-06 12:31:47 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-06-12 15:20:05 -0400
commit9d544f2b9bd4a0f7ba2784cc47e3591667a7b8d4 (patch)
tree5497f9b83aaa2e17da5d6ef0901de0c731e7b8a3 /drivers/s390/scsi/zfcp_aux.c
parent9e4f5e29610162fd426366f3b29e3cc6e575b858 (diff)
[SCSI] zfcp: Add FC pass-through support
Provide the ability to do fibre channel requests from the userspace to our zfcp driver. Patch builds upon extension to the fibre channel tranport class by James Smart and Seokmann Ju. See here http://marc.info/?l=linux-scsi&m=123808882309133&w=2 Signed-off-by: Sven Schuetz <sven@linux.vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_aux.c')
-rw-r--r--drivers/s390/scsi/zfcp_aux.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 3ac27ee47396..2ccbd185a5fb 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -470,6 +470,12 @@ int zfcp_adapter_enqueue(struct ccw_device *ccw_device)
470 if (!adapter) 470 if (!adapter)
471 return -ENOMEM; 471 return -ENOMEM;
472 472
473 adapter->gs = kzalloc(sizeof(struct zfcp_wka_ports), GFP_KERNEL);
474 if (!adapter->gs) {
475 kfree(adapter);
476 return -ENOMEM;
477 }
478
473 ccw_device->handler = NULL; 479 ccw_device->handler = NULL;
474 adapter->ccw_device = ccw_device; 480 adapter->ccw_device = ccw_device;
475 atomic_set(&adapter->refcount, 0); 481 atomic_set(&adapter->refcount, 0);
@@ -523,8 +529,7 @@ int zfcp_adapter_enqueue(struct ccw_device *ccw_device)
523 goto sysfs_failed; 529 goto sysfs_failed;
524 530
525 atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status); 531 atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status);
526 532 zfcp_fc_wka_ports_init(adapter);
527 zfcp_fc_nameserver_init(adapter);
528 533
529 if (!zfcp_adapter_scsi_register(adapter)) 534 if (!zfcp_adapter_scsi_register(adapter))
530 return 0; 535 return 0;
@@ -571,6 +576,7 @@ void zfcp_adapter_dequeue(struct zfcp_adapter *adapter)
571 kfree(adapter->req_list); 576 kfree(adapter->req_list);
572 kfree(adapter->fc_stats); 577 kfree(adapter->fc_stats);
573 kfree(adapter->stats_reset_data); 578 kfree(adapter->stats_reset_data);
579 kfree(adapter->gs);
574 kfree(adapter); 580 kfree(adapter);
575} 581}
576 582