]> git.karo-electronics.de Git - linux-beck.git/commitdiff
cpuidle: fix improper return value on error
authorPan Bian <bianpan2016@163.com>
Sat, 3 Dec 2016 15:02:27 +0000 (23:02 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 6 Dec 2016 01:24:14 +0000 (02:24 +0100)
In function cpuidle_add_state_sysfs(), variable ret takes the return
value. Its value should be negative on errors. Because ret is reset in
the loop, its value will be 0 during the second and after repeat of the
loop. If kzalloc() returns a NULL pointer then, it will return 0. It may
be better to explicitly assign "-ENOMEM" when the call to kzalloc()
fails.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=188901
Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/sysfs.c

index 832a2c3f01ffccf691842507955078299799eb86..c5adc8c9ac43afeffb0f7ca842f730df76ef8eb1 100644 (file)
@@ -403,8 +403,10 @@ static int cpuidle_add_state_sysfs(struct cpuidle_device *device)
        /* state statistics */
        for (i = 0; i < drv->state_count; i++) {
                kobj = kzalloc(sizeof(struct cpuidle_state_kobj), GFP_KERNEL);
-               if (!kobj)
+               if (!kobj) {
+                       ret = -ENOMEM;
                        goto error_state;
+               }
                kobj->state = &drv->states[i];
                kobj->state_usage = &device->states_usage[i];
                init_completion(&kobj->kobj_unregister);