Showing error 791

User: Jiri Slaby
Error type: Memory Leak
Error type description: There the code omits to free some allocated memory
File location: kernel/params.c
Line in file: 589
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:26:27 UTC


Source:

559 *
560 * Remove sysfs entries for module parameters and the corresponding
561 * kobject.
562 */
563void module_param_sysfs_remove(struct module *mod)
564{
565        if (mod->mkobj.mp) {
566                sysfs_remove_group(&mod->mkobj.kobj, &mod->mkobj.mp->grp);
567                /* We are positive that no one is using any param
568                 * attrs at this point.  Deallocate immediately. */
569                free_module_param_attrs(&mod->mkobj);
570        }
571}
572#endif
573
574static void __init kernel_add_sysfs_param(const char *name,
575                                          struct kernel_param *kparam,
576                                          unsigned int name_skip)
577{
578        struct module_kobject *mk;
579        struct kobject *kobj;
580        int err;
581
582        kobj = kset_find_obj(module_kset, name);
583        if (kobj) {
584                /* We already have one.  Remove params so we can add more. */
585                mk = to_module_kobject(kobj);
586                /* We need to remove it before adding parameters. */
587                sysfs_remove_group(&mk->kobj, &mk->mp->grp);
588        } else {
589                mk = kzalloc(sizeof(struct module_kobject), GFP_KERNEL);
590                BUG_ON(!mk);
591
592                mk->mod = THIS_MODULE;
593                mk->kobj.kset = module_kset;
594                err = kobject_init_and_add(&mk->kobj, &module_ktype, NULL,
595                                           "%s", name);
596                if (err) {
597                        kobject_put(&mk->kobj);
598                        printk(KERN_ERR "Module '%s' failed add to sysfs, "
599                               "error number %d\n", name, err);
Show full sources