diff options
author | Randy Dunlap <rdunlap@xenotime.net> | 2006-09-29 01:58:55 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-29 09:18:04 -0700 |
commit | d8c7649e99e4b081b624aefe1e77caa30b53cb18 (patch) | |
tree | 4afc0411a45521963492a22a6c9712d9b7059bbb /kernel/params.c | |
parent | 5906e4171ad61ce68de95e51b773146707671f80 (diff) | |
download | lwn-d8c7649e99e4b081b624aefe1e77caa30b53cb18.tar.gz lwn-d8c7649e99e4b081b624aefe1e77caa30b53cb18.zip |
[PATCH] kernel/params: driver layer error checking
Check driver layer return values in kernel/params.c
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/params.c')
-rw-r--r-- | kernel/params.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/params.c b/kernel/params.c index 91aea7aa532e..63d432d0ebc0 100644 --- a/kernel/params.c +++ b/kernel/params.c @@ -547,6 +547,7 @@ static void __init kernel_param_sysfs_setup(const char *name, unsigned int name_skip) { struct module_kobject *mk; + int ret; mk = kzalloc(sizeof(struct module_kobject), GFP_KERNEL); BUG_ON(!mk); @@ -554,7 +555,8 @@ static void __init kernel_param_sysfs_setup(const char *name, mk->mod = THIS_MODULE; kobj_set_kset_s(mk, module_subsys); kobject_set_name(&mk->kobj, name); - kobject_register(&mk->kobj); + ret = kobject_register(&mk->kobj); + BUG_ON(ret < 0); /* no need to keep the kobject if no parameter is exported */ if (!param_sysfs_setup(mk, kparam, num_params, name_skip)) { @@ -684,7 +686,14 @@ decl_subsys(module, &module_ktype, NULL); */ static int __init param_sysfs_init(void) { - subsystem_register(&module_subsys); + int ret; + + ret = subsystem_register(&module_subsys); + if (ret < 0) { + printk(KERN_WARNING "%s (%d): subsystem_register error: %d\n", + __FILE__, __LINE__, ret); + return ret; + } param_sysfs_builtin(); |