iommu: Remove iommu group changes notifier
authorLu Baolu <baolu.lu@linux.intel.com>
Mon, 18 Apr 2022 00:50:00 +0000 (08:50 +0800)
committerJoerg Roedel <jroedel@suse.de>
Thu, 28 Apr 2022 13:32:20 +0000 (15:32 +0200)
The iommu group changes notifer is not referenced in the tree. Remove it
to avoid dead code.

Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20220418005000.897664-12-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/iommu.c
include/linux/iommu.h

index eba8e8c..0c42ece 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/errno.h>
 #include <linux/iommu.h>
 #include <linux/idr.h>
-#include <linux/notifier.h>
 #include <linux/err.h>
 #include <linux/pci.h>
 #include <linux/bitops.h>
@@ -40,7 +39,6 @@ struct iommu_group {
        struct kobject *devices_kobj;
        struct list_head devices;
        struct mutex mutex;
-       struct blocking_notifier_head notifier;
        void *iommu_data;
        void (*iommu_data_release)(void *iommu_data);
        char *name;
@@ -632,7 +630,6 @@ struct iommu_group *iommu_group_alloc(void)
        mutex_init(&group->mutex);
        INIT_LIST_HEAD(&group->devices);
        INIT_LIST_HEAD(&group->entry);
-       BLOCKING_INIT_NOTIFIER_HEAD(&group->notifier);
 
        ret = ida_simple_get(&iommu_group_ida, 0, 0, GFP_KERNEL);
        if (ret < 0) {
@@ -905,10 +902,6 @@ rename:
        if (ret)
                goto err_put_group;
 
-       /* Notify any listeners about change to group. */
-       blocking_notifier_call_chain(&group->notifier,
-                                    IOMMU_GROUP_NOTIFY_ADD_DEVICE, dev);
-
        trace_add_device_to_group(group->id, dev);
 
        dev_info(dev, "Adding to iommu group %d\n", group->id);
@@ -950,10 +943,6 @@ void iommu_group_remove_device(struct device *dev)
 
        dev_info(dev, "Removing from iommu group %d\n", group->id);
 
-       /* Pre-notify listeners that a device is being removed. */
-       blocking_notifier_call_chain(&group->notifier,
-                                    IOMMU_GROUP_NOTIFY_DEL_DEVICE, dev);
-
        mutex_lock(&group->mutex);
        list_for_each_entry(tmp_device, &group->devices, list) {
                if (tmp_device->dev == dev) {
@@ -1075,36 +1064,6 @@ void iommu_group_put(struct iommu_group *group)
 }
 EXPORT_SYMBOL_GPL(iommu_group_put);
 
-/**
- * iommu_group_register_notifier - Register a notifier for group changes
- * @group: the group to watch
- * @nb: notifier block to signal
- *
- * This function allows iommu group users to track changes in a group.
- * See include/linux/iommu.h for actions sent via this notifier.  Caller
- * should hold a reference to the group throughout notifier registration.
- */
-int iommu_group_register_notifier(struct iommu_group *group,
-                                 struct notifier_block *nb)
-{
-       return blocking_notifier_chain_register(&group->notifier, nb);
-}
-EXPORT_SYMBOL_GPL(iommu_group_register_notifier);
-
-/**
- * iommu_group_unregister_notifier - Unregister a notifier
- * @group: the group to watch
- * @nb: notifier block to signal
- *
- * Unregister a previously registered group notifier block.
- */
-int iommu_group_unregister_notifier(struct iommu_group *group,
-                                   struct notifier_block *nb)
-{
-       return blocking_notifier_chain_unregister(&group->notifier, nb);
-}
-EXPORT_SYMBOL_GPL(iommu_group_unregister_notifier);
-
 /**
  * iommu_register_device_fault_handler() - Register a device fault handler
  * @dev: the device
@@ -1650,14 +1609,8 @@ static int remove_iommu_group(struct device *dev, void *data)
 static int iommu_bus_notifier(struct notifier_block *nb,
                              unsigned long action, void *data)
 {
-       unsigned long group_action = 0;
        struct device *dev = data;
-       struct iommu_group *group;
 
-       /*
-        * ADD/DEL call into iommu driver ops if provided, which may
-        * result in ADD/DEL notifiers to group->notifier
-        */
        if (action == BUS_NOTIFY_ADD_DEVICE) {
                int ret;
 
@@ -1668,34 +1621,6 @@ static int iommu_bus_notifier(struct notifier_block *nb,
                return NOTIFY_OK;
        }
 
-       /*
-        * Remaining BUS_NOTIFYs get filtered and republished to the
-        * group, if anyone is listening
-        */
-       group = iommu_group_get(dev);
-       if (!group)
-               return 0;
-
-       switch (action) {
-       case BUS_NOTIFY_BIND_DRIVER:
-               group_action = IOMMU_GROUP_NOTIFY_BIND_DRIVER;
-               break;
-       case BUS_NOTIFY_BOUND_DRIVER:
-               group_action = IOMMU_GROUP_NOTIFY_BOUND_DRIVER;
-               break;
-       case BUS_NOTIFY_UNBIND_DRIVER:
-               group_action = IOMMU_GROUP_NOTIFY_UNBIND_DRIVER;
-               break;
-       case BUS_NOTIFY_UNBOUND_DRIVER:
-               group_action = IOMMU_GROUP_NOTIFY_UNBOUND_DRIVER;
-               break;
-       }
-
-       if (group_action)
-               blocking_notifier_call_chain(&group->notifier,
-                                            group_action, dev);
-
-       iommu_group_put(group);
        return 0;
 }
 
index 77972ef..6ef2df2 100644 (file)
@@ -407,13 +407,6 @@ static inline const struct iommu_ops *dev_iommu_ops(struct device *dev)
        return dev->iommu->iommu_dev->ops;
 }
 
-#define IOMMU_GROUP_NOTIFY_ADD_DEVICE          1 /* Device added */
-#define IOMMU_GROUP_NOTIFY_DEL_DEVICE          2 /* Pre Device removed */
-#define IOMMU_GROUP_NOTIFY_BIND_DRIVER         3 /* Pre Driver bind */
-#define IOMMU_GROUP_NOTIFY_BOUND_DRIVER                4 /* Post Driver bind */
-#define IOMMU_GROUP_NOTIFY_UNBIND_DRIVER       5 /* Pre Driver unbind */
-#define IOMMU_GROUP_NOTIFY_UNBOUND_DRIVER      6 /* Post Driver unbind */
-
 extern int bus_set_iommu(struct bus_type *bus, const struct iommu_ops *ops);
 extern int bus_iommu_probe(struct bus_type *bus);
 extern bool iommu_present(struct bus_type *bus);
@@ -478,10 +471,6 @@ extern int iommu_group_for_each_dev(struct iommu_group *group, void *data,
 extern struct iommu_group *iommu_group_get(struct device *dev);
 extern struct iommu_group *iommu_group_ref_get(struct iommu_group *group);
 extern void iommu_group_put(struct iommu_group *group);
-extern int iommu_group_register_notifier(struct iommu_group *group,
-                                        struct notifier_block *nb);
-extern int iommu_group_unregister_notifier(struct iommu_group *group,
-                                          struct notifier_block *nb);
 extern int iommu_register_device_fault_handler(struct device *dev,
                                        iommu_dev_fault_handler_t handler,
                                        void *data);
@@ -878,18 +867,6 @@ static inline void iommu_group_put(struct iommu_group *group)
 {
 }
 
-static inline int iommu_group_register_notifier(struct iommu_group *group,
-                                               struct notifier_block *nb)
-{
-       return -ENODEV;
-}
-
-static inline int iommu_group_unregister_notifier(struct iommu_group *group,
-                                                 struct notifier_block *nb)
-{
-       return 0;
-}
-
 static inline
 int iommu_register_device_fault_handler(struct device *dev,
                                        iommu_dev_fault_handler_t handler,