@@ -1922,7 +1922,7 @@ static void cleanup_glue_dir(struct device *dev, struct kobject *glue_dir)
mutex_unlock(&gdp_mutex);
}
-static int device_add_class_symlinks(struct device *dev)
+int device_add_class_symlinks(struct device *dev)
{
struct device_node *of_node = dev_of_node(dev);
int error;
@@ -1973,8 +1973,9 @@ static int device_add_class_symlinks(struct device *dev)
sysfs_remove_link(&dev->kobj, "of_node");
return error;
}
+EXPORT_SYMBOL_GPL(device_add_class_symlinks);
-static void device_remove_class_symlinks(struct device *dev)
+void device_remove_class_symlinks(struct device *dev)
{
if (dev_of_node(dev))
sysfs_remove_link(&dev->kobj, "of_node");
@@ -1991,6 +1992,7 @@ static void device_remove_class_symlinks(struct device *dev)
#endif
sysfs_delete_link(&dev->class->p->subsys.kobj, &dev->kobj, dev_name(dev));
}
+EXPORT_SYMBOL_GPL(device_remove_class_symlinks);
/**
* dev_set_name - set a device name
@@ -268,6 +268,8 @@ void bus_sort_breadthfirst(struct bus_type *bus,
int (*compare)(const struct device *a,
const struct device *b));
extern int bus_add_device(struct device *dev);
+extern int device_add_class_symlinks(struct device *dev);
+extern void device_remove_class_symlinks(struct device *dev);
/*
* Bus notifiers: Get notified of addition/removal of devices
When updating the /sys/devices/pci* entries affected by changes in the PCI topology, their symlinks in /sys/bus/pci/devices/* must also be rebuilt. Moving device_add_class_symlinks() and device_remove_class_symlinks() to a public API allows the PCI subsystem to update the sysfs without destroying the working affected devices. Signed-off-by: Sergey Miroshnichenko <s.miroshnichenko@yadro.com> --- drivers/base/core.c | 6 ++++-- include/linux/device.h | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-)