diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_aux.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 10 |
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 | ||