diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:25:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:25:15 -0500 |
commit | 08a4ecee986dd98e86090ff5faac4782b6765aed (patch) | |
tree | 74df5de49f38c432a6a18303b0c6d834fd09028f /include | |
parent | ba93c6297b9cfad5a70b5e5ed13c9dbead6601d3 (diff) | |
parent | b3229087c5e08589cea4f5040dab56f7dc11332a (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (23 commits)
[PATCH] sysfs: fix a kobject leak in sysfs_add_link on the error path
[PATCH] sysfs: don't export dir symbols
[PATCH] get_cpu_sysdev() signedness fix
[PATCH] kobject_add_dir
[PATCH] debugfs: Add debugfs_create_blob() helper for exporting binary data
[PATCH] sysfs: fix problem with duplicate sysfs directories and files
[PATCH] Kobject: kobject.h: fix a typo
[PATCH] Kobject: provide better warning messages when people do stupid things
[PATCH] Driver core: add macros notice(), dev_notice()
[PATCH] firmware: fix BUG: in fw_realloc_buffer
[PATCH] sysfs: kzalloc conversion
[PATCH] fix module sysfs files reference counting
[PATCH] add EXPORT_SYMBOL_GPL_FUTURE() to USB subsystem
[PATCH] add EXPORT_SYMBOL_GPL_FUTURE() to RCU subsystem
[PATCH] add EXPORT_SYMBOL_GPL_FUTURE()
[PATCH] Clean up module.c symbol searching logic
[PATCH] kobj_map semaphore to mutex conversion
[PATCH] kref: avoid an atomic operation in kref_put()
[PATCH] handle errors returned by platform_get_irq*()
[PATCH] driver core: platform_get_irq*(): return -ENXIO on error
...
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 14 | ||||
-rw-r--r-- | include/linux/cpu.h | 2 | ||||
-rw-r--r-- | include/linux/debugfs.h | 15 | ||||
-rw-r--r-- | include/linux/device.h | 2 | ||||
-rw-r--r-- | include/linux/kobj_map.h | 4 | ||||
-rw-r--r-- | include/linux/kobject.h | 4 | ||||
-rw-r--r-- | include/linux/module.h | 10 |
7 files changed, 47 insertions, 4 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 35de20cf8fac..9d11550b4818 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -58,6 +58,13 @@ | |||
58 | VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \ | 58 | VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \ |
59 | } \ | 59 | } \ |
60 | \ | 60 | \ |
61 | /* Kernel symbol table: GPL-future-only symbols */ \ | ||
62 | __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - LOAD_OFFSET) { \ | ||
63 | VMLINUX_SYMBOL(__start___ksymtab_gpl_future) = .; \ | ||
64 | *(__ksymtab_gpl_future) \ | ||
65 | VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .; \ | ||
66 | } \ | ||
67 | \ | ||
61 | /* Kernel symbol table: Normal symbols */ \ | 68 | /* Kernel symbol table: Normal symbols */ \ |
62 | __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \ | 69 | __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \ |
63 | VMLINUX_SYMBOL(__start___kcrctab) = .; \ | 70 | VMLINUX_SYMBOL(__start___kcrctab) = .; \ |
@@ -72,6 +79,13 @@ | |||
72 | VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .; \ | 79 | VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .; \ |
73 | } \ | 80 | } \ |
74 | \ | 81 | \ |
82 | /* Kernel symbol table: GPL-future-only symbols */ \ | ||
83 | __kcrctab_gpl_future : AT(ADDR(__kcrctab_gpl_future) - LOAD_OFFSET) { \ | ||
84 | VMLINUX_SYMBOL(__start___kcrctab_gpl_future) = .; \ | ||
85 | *(__kcrctab_gpl_future) \ | ||
86 | VMLINUX_SYMBOL(__stop___kcrctab_gpl_future) = .; \ | ||
87 | } \ | ||
88 | \ | ||
75 | /* Kernel symbol table: strings */ \ | 89 | /* Kernel symbol table: strings */ \ |
76 | __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ | 90 | __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ |
77 | *(__ksymtab_strings) \ | 91 | *(__ksymtab_strings) \ |
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 0ed1d4853c69..d612b89dce33 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -32,7 +32,7 @@ struct cpu { | |||
32 | }; | 32 | }; |
33 | 33 | ||
34 | extern int register_cpu(struct cpu *, int, struct node *); | 34 | extern int register_cpu(struct cpu *, int, struct node *); |
35 | extern struct sys_device *get_cpu_sysdev(int cpu); | 35 | extern struct sys_device *get_cpu_sysdev(unsigned cpu); |
36 | #ifdef CONFIG_HOTPLUG_CPU | 36 | #ifdef CONFIG_HOTPLUG_CPU |
37 | extern void unregister_cpu(struct cpu *, struct node *); | 37 | extern void unregister_cpu(struct cpu *, struct node *); |
38 | #endif | 38 | #endif |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index a5fa6a6eede8..4b0428e335be 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
@@ -21,6 +21,11 @@ | |||
21 | 21 | ||
22 | struct file_operations; | 22 | struct file_operations; |
23 | 23 | ||
24 | struct debugfs_blob_wrapper { | ||
25 | void *data; | ||
26 | unsigned long size; | ||
27 | }; | ||
28 | |||
24 | #if defined(CONFIG_DEBUG_FS) | 29 | #if defined(CONFIG_DEBUG_FS) |
25 | struct dentry *debugfs_create_file(const char *name, mode_t mode, | 30 | struct dentry *debugfs_create_file(const char *name, mode_t mode, |
26 | struct dentry *parent, void *data, | 31 | struct dentry *parent, void *data, |
@@ -39,6 +44,9 @@ struct dentry *debugfs_create_u32(const char *name, mode_t mode, | |||
39 | struct dentry *debugfs_create_bool(const char *name, mode_t mode, | 44 | struct dentry *debugfs_create_bool(const char *name, mode_t mode, |
40 | struct dentry *parent, u32 *value); | 45 | struct dentry *parent, u32 *value); |
41 | 46 | ||
47 | struct dentry *debugfs_create_blob(const char *name, mode_t mode, | ||
48 | struct dentry *parent, | ||
49 | struct debugfs_blob_wrapper *blob); | ||
42 | #else | 50 | #else |
43 | 51 | ||
44 | #include <linux/err.h> | 52 | #include <linux/err.h> |
@@ -94,6 +102,13 @@ static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, | |||
94 | return ERR_PTR(-ENODEV); | 102 | return ERR_PTR(-ENODEV); |
95 | } | 103 | } |
96 | 104 | ||
105 | static inline struct dentry *debugfs_create_blob(const char *name, mode_t mode, | ||
106 | struct dentry *parent, | ||
107 | struct debugfs_blob_wrapper *blob) | ||
108 | { | ||
109 | return ERR_PTR(-ENODEV); | ||
110 | } | ||
111 | |||
97 | #endif | 112 | #endif |
98 | 113 | ||
99 | #endif | 114 | #endif |
diff --git a/include/linux/device.h b/include/linux/device.h index 58df18d9cd3e..5b595fdfb672 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -424,6 +424,8 @@ extern void firmware_unregister(struct subsystem *); | |||
424 | dev_printk(KERN_INFO , dev , format , ## arg) | 424 | dev_printk(KERN_INFO , dev , format , ## arg) |
425 | #define dev_warn(dev, format, arg...) \ | 425 | #define dev_warn(dev, format, arg...) \ |
426 | dev_printk(KERN_WARNING , dev , format , ## arg) | 426 | dev_printk(KERN_WARNING , dev , format , ## arg) |
427 | #define dev_notice(dev, format, arg...) \ | ||
428 | dev_printk(KERN_NOTICE , dev , format , ## arg) | ||
427 | 429 | ||
428 | /* Create alias, so I can be autoloaded. */ | 430 | /* Create alias, so I can be autoloaded. */ |
429 | #define MODULE_ALIAS_CHARDEV(major,minor) \ | 431 | #define MODULE_ALIAS_CHARDEV(major,minor) \ |
diff --git a/include/linux/kobj_map.h b/include/linux/kobj_map.h index cbe7d8008042..bafe178a381f 100644 --- a/include/linux/kobj_map.h +++ b/include/linux/kobj_map.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifdef __KERNEL__ | 1 | #ifdef __KERNEL__ |
2 | 2 | ||
3 | #include <asm/semaphore.h> | 3 | #include <linux/mutex.h> |
4 | 4 | ||
5 | typedef struct kobject *kobj_probe_t(dev_t, int *, void *); | 5 | typedef struct kobject *kobj_probe_t(dev_t, int *, void *); |
6 | struct kobj_map; | 6 | struct kobj_map; |
@@ -9,6 +9,6 @@ int kobj_map(struct kobj_map *, dev_t, unsigned long, struct module *, | |||
9 | kobj_probe_t *, int (*)(dev_t, void *), void *); | 9 | kobj_probe_t *, int (*)(dev_t, void *), void *); |
10 | void kobj_unmap(struct kobj_map *, dev_t, unsigned long); | 10 | void kobj_unmap(struct kobj_map *, dev_t, unsigned long); |
11 | struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *); | 11 | struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *); |
12 | struct kobj_map *kobj_map_init(kobj_probe_t *, struct semaphore *); | 12 | struct kobj_map *kobj_map_init(kobj_probe_t *, struct mutex *); |
13 | 13 | ||
14 | #endif | 14 | #endif |
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index c374b5fa8d3b..4cb1214ec290 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -80,6 +80,8 @@ extern void kobject_unregister(struct kobject *); | |||
80 | extern struct kobject * kobject_get(struct kobject *); | 80 | extern struct kobject * kobject_get(struct kobject *); |
81 | extern void kobject_put(struct kobject *); | 81 | extern void kobject_put(struct kobject *); |
82 | 82 | ||
83 | extern struct kobject *kobject_add_dir(struct kobject *, const char *); | ||
84 | |||
83 | extern char * kobject_get_path(struct kobject *, gfp_t); | 85 | extern char * kobject_get_path(struct kobject *, gfp_t); |
84 | 86 | ||
85 | struct kobj_type { | 87 | struct kobj_type { |
@@ -255,7 +257,7 @@ struct subsys_attribute { | |||
255 | extern int subsys_create_file(struct subsystem * , struct subsys_attribute *); | 257 | extern int subsys_create_file(struct subsystem * , struct subsys_attribute *); |
256 | extern void subsys_remove_file(struct subsystem * , struct subsys_attribute *); | 258 | extern void subsys_remove_file(struct subsystem * , struct subsys_attribute *); |
257 | 259 | ||
258 | #if defined(CONFIG_HOTPLUG) & defined(CONFIG_NET) | 260 | #if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET) |
259 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); | 261 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); |
260 | 262 | ||
261 | int add_uevent_var(char **envp, int num_envp, int *cur_index, | 263 | int add_uevent_var(char **envp, int num_envp, int *cur_index, |
diff --git a/include/linux/module.h b/include/linux/module.h index 84d75f3a8aca..70bd843c71cb 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -198,6 +198,9 @@ void *__symbol_get_gpl(const char *symbol); | |||
198 | #define EXPORT_SYMBOL_GPL(sym) \ | 198 | #define EXPORT_SYMBOL_GPL(sym) \ |
199 | __EXPORT_SYMBOL(sym, "_gpl") | 199 | __EXPORT_SYMBOL(sym, "_gpl") |
200 | 200 | ||
201 | #define EXPORT_SYMBOL_GPL_FUTURE(sym) \ | ||
202 | __EXPORT_SYMBOL(sym, "_gpl_future") | ||
203 | |||
201 | #endif | 204 | #endif |
202 | 205 | ||
203 | struct module_ref | 206 | struct module_ref |
@@ -242,6 +245,7 @@ struct module | |||
242 | /* Sysfs stuff. */ | 245 | /* Sysfs stuff. */ |
243 | struct module_kobject mkobj; | 246 | struct module_kobject mkobj; |
244 | struct module_param_attrs *param_attrs; | 247 | struct module_param_attrs *param_attrs; |
248 | struct module_attribute *modinfo_attrs; | ||
245 | const char *version; | 249 | const char *version; |
246 | const char *srcversion; | 250 | const char *srcversion; |
247 | 251 | ||
@@ -255,6 +259,11 @@ struct module | |||
255 | unsigned int num_gpl_syms; | 259 | unsigned int num_gpl_syms; |
256 | const unsigned long *gpl_crcs; | 260 | const unsigned long *gpl_crcs; |
257 | 261 | ||
262 | /* symbols that will be GPL-only in the near future. */ | ||
263 | const struct kernel_symbol *gpl_future_syms; | ||
264 | unsigned int num_gpl_future_syms; | ||
265 | const unsigned long *gpl_future_crcs; | ||
266 | |||
258 | /* Exception table */ | 267 | /* Exception table */ |
259 | unsigned int num_exentries; | 268 | unsigned int num_exentries; |
260 | const struct exception_table_entry *extable; | 269 | const struct exception_table_entry *extable; |
@@ -441,6 +450,7 @@ void module_remove_driver(struct device_driver *); | |||
441 | #else /* !CONFIG_MODULES... */ | 450 | #else /* !CONFIG_MODULES... */ |
442 | #define EXPORT_SYMBOL(sym) | 451 | #define EXPORT_SYMBOL(sym) |
443 | #define EXPORT_SYMBOL_GPL(sym) | 452 | #define EXPORT_SYMBOL_GPL(sym) |
453 | #define EXPORT_SYMBOL_GPL_FUTURE(sym) | ||
444 | 454 | ||
445 | /* Given an address, look for it in the exception tables. */ | 455 | /* Given an address, look for it in the exception tables. */ |
446 | static inline const struct exception_table_entry * | 456 | static inline const struct exception_table_entry * |