diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-04 21:44:12 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-04 21:44:12 -0500 |
| commit | db9edfd7e339ca4113153d887e782dd05be5a9eb (patch) | |
| tree | 0a4ba12447a0cabc800adc7e9667d284777b0181 /include/linux | |
| parent | 631b034724364b413e8a52e7c2e03a9d77e4c2b4 (diff) | |
| parent | fd586bacf439f36dea9b9bf6e6133ac87df2730c (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
Trivial manual merge fixup for usb_find_interface clashes.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/device.h | 14 | ||||
| -rw-r--r-- | include/linux/firmware.h | 2 | ||||
| -rw-r--r-- | include/linux/input.h | 79 | ||||
| -rw-r--r-- | include/linux/kobject.h | 54 | ||||
| -rw-r--r-- | include/linux/kobject_uevent.h | 57 | ||||
| -rw-r--r-- | include/linux/platform_device.h | 1 | ||||
| -rw-r--r-- | include/linux/sysctl.h | 2 | ||||
| -rw-r--r-- | include/linux/usb.h | 2 |
8 files changed, 86 insertions, 125 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 17cbc6db67b4..0cdee78e5ce1 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -47,8 +47,8 @@ struct bus_type { | |||
| 47 | struct driver_attribute * drv_attrs; | 47 | struct driver_attribute * drv_attrs; |
| 48 | 48 | ||
| 49 | int (*match)(struct device * dev, struct device_driver * drv); | 49 | int (*match)(struct device * dev, struct device_driver * drv); |
| 50 | int (*hotplug) (struct device *dev, char **envp, | 50 | int (*uevent)(struct device *dev, char **envp, |
| 51 | int num_envp, char *buffer, int buffer_size); | 51 | int num_envp, char *buffer, int buffer_size); |
| 52 | int (*suspend)(struct device * dev, pm_message_t state); | 52 | int (*suspend)(struct device * dev, pm_message_t state); |
| 53 | int (*resume)(struct device * dev); | 53 | int (*resume)(struct device * dev); |
| 54 | }; | 54 | }; |
| @@ -151,7 +151,7 @@ struct class { | |||
| 151 | struct class_attribute * class_attrs; | 151 | struct class_attribute * class_attrs; |
| 152 | struct class_device_attribute * class_dev_attrs; | 152 | struct class_device_attribute * class_dev_attrs; |
| 153 | 153 | ||
| 154 | int (*hotplug)(struct class_device *dev, char **envp, | 154 | int (*uevent)(struct class_device *dev, char **envp, |
| 155 | int num_envp, char *buffer, int buffer_size); | 155 | int num_envp, char *buffer, int buffer_size); |
| 156 | 156 | ||
| 157 | void (*release)(struct class_device *dev); | 157 | void (*release)(struct class_device *dev); |
| @@ -209,9 +209,9 @@ extern int class_device_create_file(struct class_device *, | |||
| 209 | * set, this will be called instead of the class specific release function. | 209 | * set, this will be called instead of the class specific release function. |
| 210 | * Only use this if you want to override the default release function, like | 210 | * Only use this if you want to override the default release function, like |
| 211 | * when you are nesting class_device structures. | 211 | * when you are nesting class_device structures. |
| 212 | * @hotplug: pointer to a hotplug function for this struct class_device. If | 212 | * @uevent: pointer to a uevent function for this struct class_device. If |
| 213 | * set, this will be called instead of the class specific hotplug function. | 213 | * set, this will be called instead of the class specific uevent function. |
| 214 | * Only use this if you want to override the default hotplug function, like | 214 | * Only use this if you want to override the default uevent function, like |
| 215 | * when you are nesting class_device structures. | 215 | * when you are nesting class_device structures. |
| 216 | */ | 216 | */ |
| 217 | struct class_device { | 217 | struct class_device { |
| @@ -227,7 +227,7 @@ struct class_device { | |||
| 227 | struct class_device *parent; /* parent of this child device, if there is one */ | 227 | struct class_device *parent; /* parent of this child device, if there is one */ |
| 228 | 228 | ||
| 229 | void (*release)(struct class_device *dev); | 229 | void (*release)(struct class_device *dev); |
| 230 | int (*hotplug)(struct class_device *dev, char **envp, | 230 | int (*uevent)(struct class_device *dev, char **envp, |
| 231 | int num_envp, char *buffer, int buffer_size); | 231 | int num_envp, char *buffer, int buffer_size); |
| 232 | char class_id[BUS_ID_SIZE]; /* unique to this class */ | 232 | char class_id[BUS_ID_SIZE]; /* unique to this class */ |
| 233 | }; | 233 | }; |
diff --git a/include/linux/firmware.h b/include/linux/firmware.h index 2063c0839d4f..2d716080be4a 100644 --- a/include/linux/firmware.h +++ b/include/linux/firmware.h | |||
| @@ -14,7 +14,7 @@ struct device; | |||
| 14 | int request_firmware(const struct firmware **fw, const char *name, | 14 | int request_firmware(const struct firmware **fw, const char *name, |
| 15 | struct device *device); | 15 | struct device *device); |
| 16 | int request_firmware_nowait( | 16 | int request_firmware_nowait( |
| 17 | struct module *module, int hotplug, | 17 | struct module *module, int uevent, |
| 18 | const char *name, struct device *device, void *context, | 18 | const char *name, struct device *device, void *context, |
| 19 | void (*cont)(const struct firmware *fw, void *context)); | 19 | void (*cont)(const struct firmware *fw, void *context)); |
| 20 | 20 | ||
diff --git a/include/linux/input.h b/include/linux/input.h index 3c5823368ddb..6d4cc3c110d6 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/time.h> | 13 | #include <linux/time.h> |
| 14 | #include <linux/list.h> | 14 | #include <linux/list.h> |
| 15 | #include <linux/device.h> | 15 | #include <linux/device.h> |
| 16 | #include <linux/mod_devicetable.h> | ||
| 16 | #else | 17 | #else |
| 17 | #include <sys/time.h> | 18 | #include <sys/time.h> |
| 18 | #include <sys/ioctl.h> | 19 | #include <sys/ioctl.h> |
| @@ -511,6 +512,8 @@ struct input_absinfo { | |||
| 511 | #define KEY_FN_S 0x1e3 | 512 | #define KEY_FN_S 0x1e3 |
| 512 | #define KEY_FN_B 0x1e4 | 513 | #define KEY_FN_B 0x1e4 |
| 513 | 514 | ||
| 515 | /* We avoid low common keys in module aliases so they don't get huge. */ | ||
| 516 | #define KEY_MIN_INTERESTING KEY_MUTE | ||
| 514 | #define KEY_MAX 0x1ff | 517 | #define KEY_MAX 0x1ff |
| 515 | 518 | ||
| 516 | /* | 519 | /* |
| @@ -793,6 +796,44 @@ struct ff_effect { | |||
| 793 | 796 | ||
| 794 | #define FF_MAX 0x7f | 797 | #define FF_MAX 0x7f |
| 795 | 798 | ||
| 799 | struct input_device_id { | ||
| 800 | |||
| 801 | kernel_ulong_t flags; | ||
| 802 | |||
| 803 | struct input_id id; | ||
| 804 | |||
| 805 | kernel_ulong_t evbit[EV_MAX/BITS_PER_LONG+1]; | ||
| 806 | kernel_ulong_t keybit[KEY_MAX/BITS_PER_LONG+1]; | ||
| 807 | kernel_ulong_t relbit[REL_MAX/BITS_PER_LONG+1]; | ||
| 808 | kernel_ulong_t absbit[ABS_MAX/BITS_PER_LONG+1]; | ||
| 809 | kernel_ulong_t mscbit[MSC_MAX/BITS_PER_LONG+1]; | ||
| 810 | kernel_ulong_t ledbit[LED_MAX/BITS_PER_LONG+1]; | ||
| 811 | kernel_ulong_t sndbit[SND_MAX/BITS_PER_LONG+1]; | ||
| 812 | kernel_ulong_t ffbit[FF_MAX/BITS_PER_LONG+1]; | ||
| 813 | kernel_ulong_t swbit[SW_MAX/BITS_PER_LONG+1]; | ||
| 814 | |||
| 815 | kernel_ulong_t driver_info; | ||
| 816 | }; | ||
| 817 | |||
| 818 | /* | ||
| 819 | * Structure for hotplug & device<->driver matching. | ||
| 820 | */ | ||
| 821 | |||
| 822 | #define INPUT_DEVICE_ID_MATCH_BUS 1 | ||
| 823 | #define INPUT_DEVICE_ID_MATCH_VENDOR 2 | ||
| 824 | #define INPUT_DEVICE_ID_MATCH_PRODUCT 4 | ||
| 825 | #define INPUT_DEVICE_ID_MATCH_VERSION 8 | ||
| 826 | |||
| 827 | #define INPUT_DEVICE_ID_MATCH_EVBIT 0x010 | ||
| 828 | #define INPUT_DEVICE_ID_MATCH_KEYBIT 0x020 | ||
| 829 | #define INPUT_DEVICE_ID_MATCH_RELBIT 0x040 | ||
| 830 | #define INPUT_DEVICE_ID_MATCH_ABSBIT 0x080 | ||
| 831 | #define INPUT_DEVICE_ID_MATCH_MSCIT 0x100 | ||
| 832 | #define INPUT_DEVICE_ID_MATCH_LEDBIT 0x200 | ||
| 833 | #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x400 | ||
| 834 | #define INPUT_DEVICE_ID_MATCH_FFBIT 0x800 | ||
| 835 | #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 | ||
| 836 | |||
| 796 | #ifdef __KERNEL__ | 837 | #ifdef __KERNEL__ |
| 797 | 838 | ||
| 798 | /* | 839 | /* |
| @@ -901,49 +942,11 @@ struct input_dev { | |||
| 901 | }; | 942 | }; |
| 902 | #define to_input_dev(d) container_of(d, struct input_dev, cdev) | 943 | #define to_input_dev(d) container_of(d, struct input_dev, cdev) |
| 903 | 944 | ||
| 904 | /* | ||
| 905 | * Structure for hotplug & device<->driver matching. | ||
| 906 | */ | ||
| 907 | |||
| 908 | #define INPUT_DEVICE_ID_MATCH_BUS 1 | ||
| 909 | #define INPUT_DEVICE_ID_MATCH_VENDOR 2 | ||
| 910 | #define INPUT_DEVICE_ID_MATCH_PRODUCT 4 | ||
| 911 | #define INPUT_DEVICE_ID_MATCH_VERSION 8 | ||
| 912 | |||
| 913 | #define INPUT_DEVICE_ID_MATCH_EVBIT 0x010 | ||
| 914 | #define INPUT_DEVICE_ID_MATCH_KEYBIT 0x020 | ||
| 915 | #define INPUT_DEVICE_ID_MATCH_RELBIT 0x040 | ||
| 916 | #define INPUT_DEVICE_ID_MATCH_ABSBIT 0x080 | ||
| 917 | #define INPUT_DEVICE_ID_MATCH_MSCIT 0x100 | ||
| 918 | #define INPUT_DEVICE_ID_MATCH_LEDBIT 0x200 | ||
| 919 | #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x400 | ||
| 920 | #define INPUT_DEVICE_ID_MATCH_FFBIT 0x800 | ||
| 921 | #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 | ||
| 922 | |||
| 923 | #define INPUT_DEVICE_ID_MATCH_DEVICE\ | 945 | #define INPUT_DEVICE_ID_MATCH_DEVICE\ |
| 924 | (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT) | 946 | (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT) |
| 925 | #define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION\ | 947 | #define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION\ |
| 926 | (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION) | 948 | (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION) |
| 927 | 949 | ||
| 928 | struct input_device_id { | ||
| 929 | |||
| 930 | unsigned long flags; | ||
| 931 | |||
| 932 | struct input_id id; | ||
| 933 | |||
| 934 | unsigned long evbit[NBITS(EV_MAX)]; | ||
| 935 | unsigned long keybit[NBITS(KEY_MAX)]; | ||
| 936 | unsigned long relbit[NBITS(REL_MAX)]; | ||
| 937 | unsigned long absbit[NBITS(ABS_MAX)]; | ||
| 938 | unsigned long mscbit[NBITS(MSC_MAX)]; | ||
| 939 | unsigned long ledbit[NBITS(LED_MAX)]; | ||
| 940 | unsigned long sndbit[NBITS(SND_MAX)]; | ||
| 941 | unsigned long ffbit[NBITS(FF_MAX)]; | ||
| 942 | unsigned long swbit[NBITS(SW_MAX)]; | ||
| 943 | |||
| 944 | unsigned long driver_info; | ||
| 945 | }; | ||
| 946 | |||
| 947 | struct input_handle; | 950 | struct input_handle; |
| 948 | 951 | ||
| 949 | struct input_handler { | 952 | struct input_handler { |
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 7f7403aa4a41..2a8d8da70961 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
| @@ -23,14 +23,27 @@ | |||
| 23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
| 24 | #include <linux/rwsem.h> | 24 | #include <linux/rwsem.h> |
| 25 | #include <linux/kref.h> | 25 | #include <linux/kref.h> |
| 26 | #include <linux/kobject_uevent.h> | ||
| 27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
| 28 | #include <asm/atomic.h> | 27 | #include <asm/atomic.h> |
| 29 | 28 | ||
| 30 | #define KOBJ_NAME_LEN 20 | 29 | #define KOBJ_NAME_LEN 20 |
| 30 | #define UEVENT_HELPER_PATH_LEN 256 | ||
| 31 | 31 | ||
| 32 | /* counter to tag the hotplug event, read only except for the kobject core */ | 32 | /* path to the userspace helper executed on an event */ |
| 33 | extern u64 hotplug_seqnum; | 33 | extern char uevent_helper[]; |
| 34 | |||
| 35 | /* counter to tag the uevent, read only except for the kobject core */ | ||
| 36 | extern u64 uevent_seqnum; | ||
| 37 | |||
| 38 | /* the actions here must match the proper string in lib/kobject_uevent.c */ | ||
| 39 | typedef int __bitwise kobject_action_t; | ||
| 40 | enum kobject_action { | ||
| 41 | KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */ | ||
| 42 | KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */ | ||
| 43 | KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */ | ||
| 44 | KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* device offline */ | ||
| 45 | KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* device online */ | ||
| 46 | }; | ||
| 34 | 47 | ||
| 35 | struct kobject { | 48 | struct kobject { |
| 36 | const char * k_name; | 49 | const char * k_name; |
| @@ -87,15 +100,14 @@ struct kobj_type { | |||
| 87 | * of object; multiple ksets can belong to one subsystem. All | 100 | * of object; multiple ksets can belong to one subsystem. All |
| 88 | * ksets of a subsystem share the subsystem's lock. | 101 | * ksets of a subsystem share the subsystem's lock. |
| 89 | * | 102 | * |
| 90 | * Each kset can support hotplugging; if it does, it will be given | 103 | * Each kset can support specific event variables; it can |
| 91 | * the opportunity to filter out specific kobjects from being | 104 | * supress the event generation or add subsystem specific |
| 92 | * reported, as well as to add its own "data" elements to the | 105 | * variables carried with the event. |
| 93 | * environment being passed to the hotplug helper. | ||
| 94 | */ | 106 | */ |
| 95 | struct kset_hotplug_ops { | 107 | struct kset_uevent_ops { |
| 96 | int (*filter)(struct kset *kset, struct kobject *kobj); | 108 | int (*filter)(struct kset *kset, struct kobject *kobj); |
| 97 | const char *(*name)(struct kset *kset, struct kobject *kobj); | 109 | const char *(*name)(struct kset *kset, struct kobject *kobj); |
| 98 | int (*hotplug)(struct kset *kset, struct kobject *kobj, char **envp, | 110 | int (*uevent)(struct kset *kset, struct kobject *kobj, char **envp, |
| 99 | int num_envp, char *buffer, int buffer_size); | 111 | int num_envp, char *buffer, int buffer_size); |
| 100 | }; | 112 | }; |
| 101 | 113 | ||
| @@ -105,7 +117,7 @@ struct kset { | |||
| 105 | struct list_head list; | 117 | struct list_head list; |
| 106 | spinlock_t list_lock; | 118 | spinlock_t list_lock; |
| 107 | struct kobject kobj; | 119 | struct kobject kobj; |
| 108 | struct kset_hotplug_ops * hotplug_ops; | 120 | struct kset_uevent_ops * uevent_ops; |
| 109 | }; | 121 | }; |
| 110 | 122 | ||
| 111 | 123 | ||
| @@ -153,20 +165,20 @@ struct subsystem { | |||
| 153 | struct rw_semaphore rwsem; | 165 | struct rw_semaphore rwsem; |
| 154 | }; | 166 | }; |
| 155 | 167 | ||
| 156 | #define decl_subsys(_name,_type,_hotplug_ops) \ | 168 | #define decl_subsys(_name,_type,_uevent_ops) \ |
| 157 | struct subsystem _name##_subsys = { \ | 169 | struct subsystem _name##_subsys = { \ |
| 158 | .kset = { \ | 170 | .kset = { \ |
| 159 | .kobj = { .name = __stringify(_name) }, \ | 171 | .kobj = { .name = __stringify(_name) }, \ |
| 160 | .ktype = _type, \ | 172 | .ktype = _type, \ |
| 161 | .hotplug_ops =_hotplug_ops, \ | 173 | .uevent_ops =_uevent_ops, \ |
| 162 | } \ | 174 | } \ |
| 163 | } | 175 | } |
| 164 | #define decl_subsys_name(_varname,_name,_type,_hotplug_ops) \ | 176 | #define decl_subsys_name(_varname,_name,_type,_uevent_ops) \ |
| 165 | struct subsystem _varname##_subsys = { \ | 177 | struct subsystem _varname##_subsys = { \ |
| 166 | .kset = { \ | 178 | .kset = { \ |
| 167 | .kobj = { .name = __stringify(_name) }, \ | 179 | .kobj = { .name = __stringify(_name) }, \ |
| 168 | .ktype = _type, \ | 180 | .ktype = _type, \ |
| 169 | .hotplug_ops =_hotplug_ops, \ | 181 | .uevent_ops =_uevent_ops, \ |
| 170 | } \ | 182 | } \ |
| 171 | } | 183 | } |
| 172 | 184 | ||
| @@ -241,15 +253,17 @@ struct subsys_attribute { | |||
| 241 | extern int subsys_create_file(struct subsystem * , struct subsys_attribute *); | 253 | extern int subsys_create_file(struct subsystem * , struct subsys_attribute *); |
| 242 | extern void subsys_remove_file(struct subsystem * , struct subsys_attribute *); | 254 | extern void subsys_remove_file(struct subsystem * , struct subsys_attribute *); |
| 243 | 255 | ||
| 244 | #ifdef CONFIG_HOTPLUG | 256 | #if defined(CONFIG_HOTPLUG) & defined(CONFIG_NET) |
| 245 | void kobject_hotplug(struct kobject *kobj, enum kobject_action action); | 257 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); |
| 246 | int add_hotplug_env_var(char **envp, int num_envp, int *cur_index, | 258 | |
| 259 | int add_uevent_var(char **envp, int num_envp, int *cur_index, | ||
| 247 | char *buffer, int buffer_size, int *cur_len, | 260 | char *buffer, int buffer_size, int *cur_len, |
| 248 | const char *format, ...) | 261 | const char *format, ...) |
| 249 | __attribute__((format (printf, 7, 8))); | 262 | __attribute__((format (printf, 7, 8))); |
| 250 | #else | 263 | #else |
| 251 | static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { } | 264 | static inline void kobject_uevent(struct kobject *kobj, enum kobject_action action) { } |
| 252 | static inline int add_hotplug_env_var(char **envp, int num_envp, int *cur_index, | 265 | |
| 266 | static inline int add_uevent_var(char **envp, int num_envp, int *cur_index, | ||
| 253 | char *buffer, int buffer_size, int *cur_len, | 267 | char *buffer, int buffer_size, int *cur_len, |
| 254 | const char *format, ...) | 268 | const char *format, ...) |
| 255 | { return 0; } | 269 | { return 0; } |
diff --git a/include/linux/kobject_uevent.h b/include/linux/kobject_uevent.h deleted file mode 100644 index aa664fe7e561..000000000000 --- a/include/linux/kobject_uevent.h +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * kobject_uevent.h - list of kobject user events that can be generated | ||
| 3 | * | ||
| 4 | * Copyright (C) 2004 IBM Corp. | ||
| 5 | * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com> | ||
| 6 | * | ||
| 7 | * This file is released under the GPLv2. | ||
| 8 | * | ||
| 9 | */ | ||
| 10 | |||
| 11 | #ifndef _KOBJECT_EVENT_H_ | ||
| 12 | #define _KOBJECT_EVENT_H_ | ||
| 13 | |||
| 14 | #define HOTPLUG_PATH_LEN 256 | ||
| 15 | |||
| 16 | /* path to the hotplug userspace helper executed on an event */ | ||
| 17 | extern char hotplug_path[]; | ||
| 18 | |||
| 19 | /* | ||
| 20 | * If you add an action here, you must also add the proper string to the | ||
| 21 | * lib/kobject_uevent.c file. | ||
| 22 | */ | ||
| 23 | typedef int __bitwise kobject_action_t; | ||
| 24 | enum kobject_action { | ||
| 25 | KOBJ_ADD = (__force kobject_action_t) 0x01, /* add event, for hotplug */ | ||
| 26 | KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* remove event, for hotplug */ | ||
| 27 | KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* a sysfs attribute file has changed */ | ||
| 28 | KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices */ | ||
| 29 | KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices */ | ||
| 30 | KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* offline event for hotplug devices */ | ||
| 31 | KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* online event for hotplug devices */ | ||
| 32 | }; | ||
| 33 | |||
| 34 | |||
| 35 | #ifdef CONFIG_KOBJECT_UEVENT | ||
| 36 | int kobject_uevent(struct kobject *kobj, | ||
| 37 | enum kobject_action action, | ||
| 38 | struct attribute *attr); | ||
| 39 | int kobject_uevent_atomic(struct kobject *kobj, | ||
| 40 | enum kobject_action action, | ||
| 41 | struct attribute *attr); | ||
| 42 | #else | ||
| 43 | static inline int kobject_uevent(struct kobject *kobj, | ||
| 44 | enum kobject_action action, | ||
| 45 | struct attribute *attr) | ||
| 46 | { | ||
| 47 | return 0; | ||
| 48 | } | ||
| 49 | static inline int kobject_uevent_atomic(struct kobject *kobj, | ||
| 50 | enum kobject_action action, | ||
| 51 | struct attribute *attr) | ||
| 52 | { | ||
| 53 | return 0; | ||
| 54 | } | ||
| 55 | #endif | ||
| 56 | |||
| 57 | #endif | ||
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 17e336f40b47..782090c68932 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h | |||
| @@ -41,6 +41,7 @@ extern struct platform_device *platform_device_alloc(const char *name, unsigned | |||
| 41 | extern int platform_device_add_resources(struct platform_device *pdev, struct resource *res, unsigned int num); | 41 | extern int platform_device_add_resources(struct platform_device *pdev, struct resource *res, unsigned int num); |
| 42 | extern int platform_device_add_data(struct platform_device *pdev, void *data, size_t size); | 42 | extern int platform_device_add_data(struct platform_device *pdev, void *data, size_t size); |
| 43 | extern int platform_device_add(struct platform_device *pdev); | 43 | extern int platform_device_add(struct platform_device *pdev); |
| 44 | extern void platform_device_del(struct platform_device *pdev); | ||
| 44 | extern void platform_device_put(struct platform_device *pdev); | 45 | extern void platform_device_put(struct platform_device *pdev); |
| 45 | 46 | ||
| 46 | struct platform_driver { | 47 | struct platform_driver { |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 93fa765e47d3..a9b80fc7f0f3 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
| @@ -124,7 +124,7 @@ enum | |||
| 124 | KERN_OVERFLOWUID=46, /* int: overflow UID */ | 124 | KERN_OVERFLOWUID=46, /* int: overflow UID */ |
| 125 | KERN_OVERFLOWGID=47, /* int: overflow GID */ | 125 | KERN_OVERFLOWGID=47, /* int: overflow GID */ |
| 126 | KERN_SHMPATH=48, /* string: path to shm fs */ | 126 | KERN_SHMPATH=48, /* string: path to shm fs */ |
| 127 | KERN_HOTPLUG=49, /* string: path to hotplug policy agent */ | 127 | KERN_HOTPLUG=49, /* string: path to uevent helper (deprecated) */ |
| 128 | KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ | 128 | KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ |
| 129 | KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */ | 129 | KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */ |
| 130 | KERN_CORE_USES_PID=52, /* int: use core or core.%pid */ | 130 | KERN_CORE_USES_PID=52, /* int: use core or core.%pid */ |
diff --git a/include/linux/usb.h b/include/linux/usb.h index e59d1bd52d4f..827cc6de5f5c 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -225,7 +225,7 @@ struct usb_interface_cache { | |||
| 225 | * Device drivers should not attempt to activate configurations. The choice | 225 | * Device drivers should not attempt to activate configurations. The choice |
| 226 | * of which configuration to install is a policy decision based on such | 226 | * of which configuration to install is a policy decision based on such |
| 227 | * considerations as available power, functionality provided, and the user's | 227 | * considerations as available power, functionality provided, and the user's |
| 228 | * desires (expressed through hotplug scripts). However, drivers can call | 228 | * desires (expressed through userspace tools). However, drivers can call |
| 229 | * usb_reset_configuration() to reinitialize the current configuration and | 229 | * usb_reset_configuration() to reinitialize the current configuration and |
| 230 | * all its interfaces. | 230 | * all its interfaces. |
| 231 | */ | 231 | */ |
