summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/device.h5
-rw-r--r--include/linux/kobj_map.h2
-rw-r--r--include/linux/kobject.h2
-rw-r--r--include/linux/kref.h2
4 files changed, 7 insertions, 4 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 786e1591102b..a33424d41038 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -15,7 +15,6 @@
#include <linux/ioport.h>
#include <linux/kobject.h>
#include <linux/list.h>
-#include <linux/spinlock.h>
#include <linux/types.h>
#include <linux/module.h>
#include <linux/pm.h>
@@ -102,7 +101,7 @@ struct device_driver {
char * name;
struct bus_type * bus;
- struct semaphore unload_sem;
+ struct completion unloaded;
struct kobject kobj;
struct list_head devices;
@@ -148,6 +147,7 @@ struct class {
struct subsystem subsys;
struct list_head children;
struct list_head interfaces;
+ struct semaphore sem; /* locks both the children and interfaces lists */
struct class_attribute * class_attrs;
struct class_device_attribute * class_dev_attrs;
@@ -184,6 +184,7 @@ struct class_device {
struct kobject kobj;
struct class * class; /* required */
+ dev_t devt; /* dev_t, creates the sysfs "dev" */
struct device * dev; /* not necessary, but nice to have */
void * class_data; /* class-specific data */
diff --git a/include/linux/kobj_map.h b/include/linux/kobj_map.h
index 404a945c1533..b6cc10bf8dfc 100644
--- a/include/linux/kobj_map.h
+++ b/include/linux/kobj_map.h
@@ -7,6 +7,6 @@ int kobj_map(struct kobj_map *, dev_t, unsigned long, struct module *,
kobj_probe_t *, int (*)(dev_t, void *), void *);
void kobj_unmap(struct kobj_map *, dev_t, unsigned long);
struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *);
-struct kobj_map *kobj_map_init(kobj_probe_t *, struct subsystem *);
+struct kobj_map *kobj_map_init(kobj_probe_t *, struct semaphore *);
#endif
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index dc773d4043e8..765d660d3bea 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -20,6 +20,7 @@
#include <linux/types.h>
#include <linux/list.h>
#include <linux/sysfs.h>
+#include <linux/spinlock.h>
#include <linux/rwsem.h>
#include <linux/kref.h>
#include <linux/kobject_uevent.h>
@@ -102,6 +103,7 @@ struct kset {
struct subsystem * subsys;
struct kobj_type * ktype;
struct list_head list;
+ spinlock_t list_lock;
struct kobject kobj;
struct kset_hotplug_ops * hotplug_ops;
};
diff --git a/include/linux/kref.h b/include/linux/kref.h
index ea5948785ebf..6fee3539893f 100644
--- a/include/linux/kref.h
+++ b/include/linux/kref.h
@@ -26,7 +26,7 @@ struct kref {
void kref_init(struct kref *kref);
void kref_get(struct kref *kref);
-void kref_put(struct kref *kref, void (*release) (struct kref *kref));
+int kref_put(struct kref *kref, void (*release) (struct kref *kref));
#endif /* __KERNEL__ */
#endif /* _KREF_H_ */