staging: gasket: core: factor out generic device remove code from PCI
authorTodd Poynor <toddpoynor@google.com>
Fri, 10 Aug 2018 03:21:07 +0000 (20:21 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Aug 2018 17:43:44 +0000 (19:43 +0200)
Separate code for generic parts of gasket device removal sequence from
the PCI device removal code, in prep for non-PCI devices later.

Signed-off-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/gasket/gasket_core.c

index ce8ae22..5e048f6 100644 (file)
@@ -1461,6 +1461,14 @@ free_gasket_dev:
        return ret;
 }
 
+static void __gasket_remove_device(struct gasket_internal_desc *internal_desc,
+                                  struct gasket_dev *gasket_dev)
+{
+       gasket_sysfs_remove_mapping(gasket_dev->dev_info.device);
+       device_destroy(internal_desc->class, gasket_dev->dev_info.devt);
+       gasket_free_dev(gasket_dev);
+}
+
 /*
  * Add PCI gasket device.
  *
@@ -1515,9 +1523,7 @@ int gasket_pci_add_device(struct pci_dev *pci_dev,
 
 cleanup_pci:
        gasket_cleanup_pci(gasket_dev);
-       gasket_sysfs_remove_mapping(gasket_dev->dev_info.device);
-       device_destroy(internal_desc->class, gasket_dev->dev_info.devt);
-       gasket_free_dev(gasket_dev);
+       __gasket_remove_device(internal_desc, gasket_dev);
        return ret;
 }
 EXPORT_SYMBOL(gasket_pci_add_device);
@@ -1528,7 +1534,6 @@ void gasket_pci_remove_device(struct pci_dev *pci_dev)
        int i;
        struct gasket_internal_desc *internal_desc;
        struct gasket_dev *gasket_dev = NULL;
-       const struct gasket_driver_desc *driver_desc;
        /* Find the device desc. */
        mutex_lock(&g_mutex);
        internal_desc = lookup_internal_desc(pci_dev);
@@ -1538,8 +1543,6 @@ void gasket_pci_remove_device(struct pci_dev *pci_dev)
        }
        mutex_unlock(&g_mutex);
 
-       driver_desc = internal_desc->driver_desc;
-
        /* Now find the specific device */
        mutex_lock(&internal_desc->mutex);
        for (i = 0; i < GASKET_DEV_MAX; i++) {
@@ -1558,10 +1561,7 @@ void gasket_pci_remove_device(struct pci_dev *pci_dev)
                internal_desc->driver_desc->name);
 
        gasket_cleanup_pci(gasket_dev);
-
-       gasket_sysfs_remove_mapping(gasket_dev->dev_info.device);
-       device_destroy(internal_desc->class, gasket_dev->dev_info.devt);
-       gasket_free_dev(gasket_dev);
+       __gasket_remove_device(internal_desc, gasket_dev);
 }
 EXPORT_SYMBOL(gasket_pci_remove_device);