scsi: ibmvscsi: add vscsi hosts to global list_head
authorTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Wed, 7 Dec 2016 22:04:35 +0000 (16:04 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 8 Dec 2016 22:02:01 +0000 (17:02 -0500)
Add each vscsi host adatper to a new global list_head named
ibmvscsi_head. There is no functional change. This is meant primarily as
a convience for locating adapters from within the debugger or crash
utility.

[mkp: fixed typo]

Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ibmvscsi/ibmvscsi.c
drivers/scsi/ibmvscsi/ibmvscsi.h

index d9534ee6ef524fb1fab03680bdde2ed34a4202b7..a0ee16f56f58e3fb4e9134d062385e1c2742a45d 100644 (file)
@@ -95,6 +95,7 @@ static int fast_fail = 1;
 static int client_reserve = 1;
 static char partition_name[97] = "UNKNOWN";
 static unsigned int partition_number = -1;
+static LIST_HEAD(ibmvscsi_head);
 
 static struct scsi_transport_template *ibmvscsi_transport_template;
 
@@ -2270,6 +2271,7 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id)
        }
 
        dev_set_drvdata(&vdev->dev, hostdata);
+       list_add_tail(&hostdata->host_list, &ibmvscsi_head);
        return 0;
 
       add_srp_port_failed:
@@ -2291,6 +2293,7 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id)
 static int ibmvscsi_remove(struct vio_dev *vdev)
 {
        struct ibmvscsi_host_data *hostdata = dev_get_drvdata(&vdev->dev);
+       list_del(&hostdata->host_list);
        unmap_persist_bufs(hostdata);
        release_event_pool(&hostdata->pool, hostdata);
        ibmvscsi_release_crq_queue(&hostdata->queue, hostdata,
index e0f6c3aeb4eef35aa390afaa5d7cd6174d8f7a48..3a7875575616e3eec27443a0db7ef9882fcc2528 100644 (file)
@@ -90,6 +90,7 @@ struct event_pool {
 
 /* all driver data associated with a host adapter */
 struct ibmvscsi_host_data {
+       struct list_head host_list;
        atomic_t request_limit;
        int client_migrated;
        int reset_crq;