driver core: class: remove struct class_interface * from callbacks
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 2 Apr 2023 17:58:49 +0000 (19:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Apr 2023 19:42:52 +0000 (21:42 +0200)
The add_dev and remove_dev callbacks in struct class_interface currently
pass in a pointer back to the class_interface structure that is calling
them, but none of the callback implementations actually use this pointer
as it is pointless (the structure is known, the driver passed it in in
the first place if it is really needed again.)

So clean this up and just remove the pointer from the callbacks and fix
up all callback functions.

Cc: Jean Delvare <jdelvare@suse.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Kurt Schwemmer <kurt.schwemmer@microsemi.com>
Cc: Jon Mason <jdmason@kudzu.us>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Allen Hubbe <allenbh@gmail.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Alexandre Bounine <alex.bou9@gmail.com>
Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Doug Gilbert <dgilbert@interlog.com>
Cc: John Stultz <jstultz@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Wang Weiyang <wangweiyang2@huawei.com>
Cc: Yang Yingliang <yangyingliang@huawei.com>
Cc: Jakob Koschel <jakobkoschel@gmail.com>
Cc: Cai Xinchen <caixinchen1@huawei.com>
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Acked-by: Logan Gunthorpe <logang@deltatee.com>
Link: https://lore.kernel.org/r/2023040250-pushover-platter-509c@gregkh
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
13 files changed:
drivers/base/class.c
drivers/base/core.c
drivers/hwmon/drivetemp.c
drivers/net/rionet.c
drivers/ntb/hw/mscc/ntb_hw_switchtec.c
drivers/pcmcia/ds.c
drivers/pcmcia/rsrc_nonstatic.c
drivers/rapidio/devices/rio_mport_cdev.c
drivers/rapidio/rio_cm.c
drivers/scsi/ses.c
drivers/scsi/sg.c
include/linux/device/class.h
kernel/time/alarmtimer.c

index ad8b9f163fd20b6e0d586f79656445f629a1e8a9..ac1808d1a2e8f0012beb816b97a7101b048b688c 100644 (file)
@@ -486,7 +486,7 @@ int class_interface_register(struct class_interface *class_intf)
        if (class_intf->add_dev) {
                class_dev_iter_init(&iter, parent, NULL, NULL);
                while ((dev = class_dev_iter_next(&iter)))
-                       class_intf->add_dev(dev, class_intf);
+                       class_intf->add_dev(dev);
                class_dev_iter_exit(&iter);
        }
        mutex_unlock(&sp->mutex);
@@ -514,7 +514,7 @@ void class_interface_unregister(struct class_interface *class_intf)
        if (class_intf->remove_dev) {
                class_dev_iter_init(&iter, parent, NULL, NULL);
                while ((dev = class_dev_iter_next(&iter)))
-                       class_intf->remove_dev(dev, class_intf);
+                       class_intf->remove_dev(dev);
                class_dev_iter_exit(&iter);
        }
        mutex_unlock(&sp->mutex);
index 64d188be4df95c916efca7bb8f2a5f3f85a5737e..7a42d1b6b721c832c4693170cd2c13cbdf3e2951 100644 (file)
@@ -541,8 +541,7 @@ static struct class devlink_class = {
        .dev_release = devlink_dev_release,
 };
 
-static int devlink_add_symlinks(struct device *dev,
-                               struct class_interface *class_intf)
+static int devlink_add_symlinks(struct device *dev)
 {
        int ret;
        size_t len;
@@ -591,8 +590,7 @@ out:
        return ret;
 }
 
-static void devlink_remove_symlinks(struct device *dev,
-                                  struct class_interface *class_intf)
+static void devlink_remove_symlinks(struct device *dev)
 {
        struct device_link *link = to_devlink(dev);
        size_t len;
@@ -3647,7 +3645,7 @@ int device_add(struct device *dev)
                /* notify any interfaces that the device is here */
                list_for_each_entry(class_intf, &sp->interfaces, node)
                        if (class_intf->add_dev)
-                               class_intf->add_dev(dev, class_intf);
+                               class_intf->add_dev(dev);
                mutex_unlock(&sp->mutex);
                subsys_put(sp);
        }
@@ -3805,7 +3803,7 @@ void device_del(struct device *dev)
                /* notify any interfaces that the device is now gone */
                list_for_each_entry(class_intf, &sp->interfaces, node)
                        if (class_intf->remove_dev)
-                               class_intf->remove_dev(dev, class_intf);
+                               class_intf->remove_dev(dev);
                /* remove the device from the class list */
                klist_del(&dev->p->knode_class);
                mutex_unlock(&sp->mutex);
index 8e5759b42390205564168a2a45c2fd42f73f850e..86171031ddc5a9f933d3d42332e2184d5a8aa349 100644 (file)
@@ -550,7 +550,7 @@ static const struct hwmon_chip_info drivetemp_chip_info = {
  * The device argument points to sdev->sdev_dev. Its parent is
  * sdev->sdev_gendev, which we can use to get the scsi_device pointer.
  */
-static int drivetemp_add(struct device *dev, struct class_interface *intf)
+static int drivetemp_add(struct device *dev)
 {
        struct scsi_device *sdev = to_scsi_device(dev->parent);
        struct drivetemp_data *st;
@@ -585,7 +585,7 @@ abort:
        return err;
 }
 
-static void drivetemp_remove(struct device *dev, struct class_interface *intf)
+static void drivetemp_remove(struct device *dev)
 {
        struct drivetemp_data *st, *tmp;
 
index fbcb9d05da649ebda37aa2440cf5893ab838aa43..4eececc945138b6e5e1ba4d1d791b7b582d9946c 100644 (file)
@@ -662,8 +662,7 @@ static int rionet_shutdown(struct notifier_block *nb, unsigned long code,
        return NOTIFY_DONE;
 }
 
-static void rionet_remove_mport(struct device *dev,
-                               struct class_interface *class_intf)
+static void rionet_remove_mport(struct device *dev)
 {
        struct rio_mport *mport = to_rio_mport(dev);
        struct net_device *ndev;
index 88ae18b0efa8dadb2b42ef8873dc31c878aa0a2d..d6bbcc7b5b90d6ea693439774178c05bb715cf3b 100644 (file)
@@ -1470,8 +1470,7 @@ static int switchtec_ntb_reinit_peer(struct switchtec_ntb *sndev)
        return rc;
 }
 
-static int switchtec_ntb_add(struct device *dev,
-                            struct class_interface *class_intf)
+static int switchtec_ntb_add(struct device *dev)
 {
        struct switchtec_dev *stdev = to_stdev(dev);
        struct switchtec_ntb *sndev;
@@ -1541,8 +1540,7 @@ free_and_exit:
        return rc;
 }
 
-static void switchtec_ntb_remove(struct device *dev,
-                                struct class_interface *class_intf)
+static void switchtec_ntb_remove(struct device *dev)
 {
        struct switchtec_dev *stdev = to_stdev(dev);
        struct switchtec_ntb *sndev = stdev->sndev;
index c8087efa5e4aff532c713b0390b64365480f4e3d..d500e5dbbc3f5e45b6181efa67b1bd27cb04fa8b 100644 (file)
@@ -1335,8 +1335,7 @@ static struct pcmcia_callback pcmcia_bus_callback = {
        .resume = pcmcia_bus_resume,
 };
 
-static int pcmcia_bus_add_socket(struct device *dev,
-                                          struct class_interface *class_intf)
+static int pcmcia_bus_add_socket(struct device *dev)
 {
        struct pcmcia_socket *socket = dev_get_drvdata(dev);
        int ret;
@@ -1369,8 +1368,7 @@ static int pcmcia_bus_add_socket(struct device *dev,
        return 0;
 }
 
-static void pcmcia_bus_remove_socket(struct device *dev,
-                                    struct class_interface *class_intf)
+static void pcmcia_bus_remove_socket(struct device *dev)
 {
        struct pcmcia_socket *socket = dev_get_drvdata(dev);
 
index ad1141fddb4ccc5adbb2fd00cfd0ee3762cd69ad..471e0c5815f390fb374f6295cb6ce1cd0a679b08 100644 (file)
@@ -1200,8 +1200,7 @@ static const struct attribute_group rsrc_attributes = {
        .attrs = pccard_rsrc_attributes,
 };
 
-static int pccard_sysfs_add_rsrc(struct device *dev,
-                                          struct class_interface *class_intf)
+static int pccard_sysfs_add_rsrc(struct device *dev)
 {
        struct pcmcia_socket *s = dev_get_drvdata(dev);
 
@@ -1210,8 +1209,7 @@ static int pccard_sysfs_add_rsrc(struct device *dev,
        return sysfs_create_group(&dev->kobj, &rsrc_attributes);
 }
 
-static void pccard_sysfs_remove_rsrc(struct device *dev,
-                                              struct class_interface *class_intf)
+static void pccard_sysfs_remove_rsrc(struct device *dev)
 {
        struct pcmcia_socket *s = dev_get_drvdata(dev);
 
index deb96c3160a7030f68facf48ddbcd38da0d20977..a115730ebf1461fb727a791057bd00b6fdbf8a39 100644 (file)
@@ -2536,10 +2536,8 @@ static void mport_cdev_remove(struct mport_dev *md)
 /*
  * mport_add_mport() - Add rio_mport from LDM device struct
  * @dev:               Linux device model struct
- * @class_intf:        Linux class_interface
  */
-static int mport_add_mport(struct device *dev,
-               struct class_interface *class_intf)
+static int mport_add_mport(struct device *dev)
 {
        struct rio_mport *mport = NULL;
        struct mport_dev *chdev = NULL;
@@ -2559,8 +2557,7 @@ static int mport_add_mport(struct device *dev,
  * mport_remove_mport() - Remove rio_mport from global list
  * TODO remove device from global mport_dev list
  */
-static void mport_remove_mport(struct device *dev,
-               struct class_interface *class_intf)
+static void mport_remove_mport(struct device *dev)
 {
        struct rio_mport *mport = NULL;
        struct mport_dev *chdev;
index acaf9cda014c1916313bdf2b75cea92acce0fe6f..49f8d111e5462321891ed5e605e764a0040fc89a 100644 (file)
@@ -2087,13 +2087,11 @@ static int riocm_cdev_add(dev_t devno)
 /*
  * riocm_add_mport - add new local mport device into channel management core
  * @dev: device object associated with mport
- * @class_intf: class interface
  *
  * When a new mport device is added, CM immediately reserves inbound and
  * outbound RapidIO mailboxes that will be used.
  */
-static int riocm_add_mport(struct device *dev,
-                          struct class_interface *class_intf)
+static int riocm_add_mport(struct device *dev)
 {
        int rc;
        int i;
@@ -2166,14 +2164,12 @@ static int riocm_add_mport(struct device *dev,
 /*
  * riocm_remove_mport - remove local mport device from channel management core
  * @dev: device object associated with mport
- * @class_intf: class interface
  *
  * Removes a local mport device from the list of registered devices that provide
  * channel management services. Returns an error if the specified mport is not
  * registered with the CM core.
  */
-static void riocm_remove_mport(struct device *dev,
-                              struct class_interface *class_intf)
+static void riocm_remove_mport(struct device *dev)
 {
        struct rio_mport *mport = to_rio_mport(dev);
        struct cm_dev *cm;
index b11a9162e73aaeed994667a3ba04f2fa59cae240..57feb0cae896fe89cbacfa764078c62864761500 100644 (file)
@@ -663,8 +663,7 @@ static void ses_match_to_enclosure(struct enclosure_device *edev,
        }
 }
 
-static int ses_intf_add(struct device *cdev,
-                       struct class_interface *intf)
+static int ses_intf_add(struct device *cdev)
 {
        struct scsi_device *sdev = to_scsi_device(cdev->parent);
        struct scsi_device *tmp_sdev;
@@ -869,8 +868,7 @@ static void ses_intf_remove_enclosure(struct scsi_device *sdev)
        enclosure_unregister(edev);
 }
 
-static void ses_intf_remove(struct device *cdev,
-                           struct class_interface *intf)
+static void ses_intf_remove(struct device *cdev)
 {
        struct scsi_device *sdev = to_scsi_device(cdev->parent);
 
index 4997f880d4a43a3b4d3fa073adc2e5296cf15119..037f8c98a6d36481a21a8f758056308848400bb1 100644 (file)
@@ -96,8 +96,8 @@ static int scatter_elem_sz_prev = SG_SCATTER_SZ;
 
 #define SG_SECTOR_SZ 512
 
-static int sg_add_device(struct device *, struct class_interface *);
-static void sg_remove_device(struct device *, struct class_interface *);
+static int sg_add_device(struct device *);
+static void sg_remove_device(struct device *);
 
 static DEFINE_IDR(sg_index_idr);
 static DEFINE_RWLOCK(sg_index_lock);   /* Also used to lock
@@ -1488,7 +1488,7 @@ out_unlock:
 }
 
 static int
-sg_add_device(struct device *cl_dev, struct class_interface *cl_intf)
+sg_add_device(struct device *cl_dev)
 {
        struct scsi_device *scsidp = to_scsi_device(cl_dev->parent);
        Sg_device *sdp = NULL;
@@ -1578,7 +1578,7 @@ sg_device_destroy(struct kref *kref)
 }
 
 static void
-sg_remove_device(struct device *cl_dev, struct class_interface *cl_intf)
+sg_remove_device(struct device *cl_dev)
 {
        struct scsi_device *scsidp = to_scsi_device(cl_dev->parent);
        Sg_device *sdp = dev_get_drvdata(cl_dev);
index 53287aa105b8e495e411db3047ffb1ee07949c75..9deeaeb457bbaa504fffbf71c8b368ca4da3034f 100644 (file)
@@ -219,8 +219,8 @@ struct class_interface {
        struct list_head        node;
        const struct class      *class;
 
-       int (*add_dev)          (struct device *, struct class_interface *);
-       void (*remove_dev)      (struct device *, struct class_interface *);
+       int (*add_dev)          (struct device *dev);
+       void (*remove_dev)      (struct device *dev);
 };
 
 int __must_check class_interface_register(struct class_interface *);
index 7e5dff602585dbc4af58c630407e28a6ed259505..82b28ab0f328a1dd48fbc5636bff30676c1a1fe4 100644 (file)
@@ -81,8 +81,7 @@ struct rtc_device *alarmtimer_get_rtcdev(void)
 }
 EXPORT_SYMBOL_GPL(alarmtimer_get_rtcdev);
 
-static int alarmtimer_rtc_add_device(struct device *dev,
-                               struct class_interface *class_intf)
+static int alarmtimer_rtc_add_device(struct device *dev)
 {
        unsigned long flags;
        struct rtc_device *rtc = to_rtc_device(dev);