Commit 1192aeb9 authored by Julia Lawall's avatar Julia Lawall Committed by Len Brown

ACPI: drivers/acpi: elide a non-zero test on a result that is never 0

The function thermal_cooling_device_register always returns either a valid
pointer or a value made with ERR_PTR, so a test for non-zero on the result
will always succeed.

The problem was found using the following semantic match.
(http://www.emn.fr/x-info/coccinelle/)

//<smpl>
@A@
expression E, E1;
statement S,S1;
position p;
@@

E = thermal_cooling_device_register(...)
... when != E = E1
if@p (E) S else S1

@n@
position a.p;
expression E,E1;
statement S,S1;
@@

E = NULL
... when != E = E1
if@p (E) S else S1

@depends on !n@
expression E;
statement S,S1;
position a.p;
@@

* if@p (E)
  S else S1
//</smpl>
Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 86d9fc12
...@@ -260,24 +260,22 @@ static int acpi_fan_add(struct acpi_device *device) ...@@ -260,24 +260,22 @@ static int acpi_fan_add(struct acpi_device *device)
result = PTR_ERR(cdev); result = PTR_ERR(cdev);
goto end; goto end;
} }
if (cdev) { printk(KERN_INFO PREFIX
printk(KERN_INFO PREFIX "%s is registered as cooling_device%d\n",
"%s is registered as cooling_device%d\n", device->dev.bus_id, cdev->id);
device->dev.bus_id, cdev->id);
acpi_driver_data(device) = cdev;
acpi_driver_data(device) = cdev; result = sysfs_create_link(&device->dev.kobj,
result = sysfs_create_link(&device->dev.kobj, &cdev->device.kobj,
&cdev->device.kobj, "thermal_cooling");
"thermal_cooling"); if (result)
if (result) return result;
return result;
result = sysfs_create_link(&cdev->device.kobj,
result = sysfs_create_link(&cdev->device.kobj, &device->dev.kobj,
&device->dev.kobj, "device");
"device"); if (result)
if (result) return result;
return result;
}
result = acpi_fan_add_fs(device); result = acpi_fan_add_fs(device);
if (result) if (result)
......
...@@ -674,22 +674,20 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device) ...@@ -674,22 +674,20 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
result = PTR_ERR(pr->cdev); result = PTR_ERR(pr->cdev);
goto end; goto end;
} }
if (pr->cdev) { printk(KERN_INFO PREFIX
printk(KERN_INFO PREFIX "%s is registered as cooling_device%d\n",
"%s is registered as cooling_device%d\n", device->dev.bus_id, pr->cdev->id);
device->dev.bus_id, pr->cdev->id);
result = sysfs_create_link(&device->dev.kobj,
result = sysfs_create_link(&device->dev.kobj, &pr->cdev->device.kobj,
&pr->cdev->device.kobj, "thermal_cooling");
"thermal_cooling"); if (result)
if (result) return result;
return result; result = sysfs_create_link(&pr->cdev->device.kobj,
result = sysfs_create_link(&pr->cdev->device.kobj, &device->dev.kobj,
&device->dev.kobj, "device");
"device"); if (result)
if (result) return result;
return result;
}
if (pr->flags.throttling) { if (pr->flags.throttling) {
printk(KERN_INFO PREFIX "%s [%s] (supports", printk(KERN_INFO PREFIX "%s [%s] (supports",
......
...@@ -734,21 +734,19 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) ...@@ -734,21 +734,19 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
if (IS_ERR(device->cdev)) if (IS_ERR(device->cdev))
return; return;
if (device->cdev) { printk(KERN_INFO PREFIX
printk(KERN_INFO PREFIX "%s is registered as cooling_device%d\n",
"%s is registered as cooling_device%d\n", device->dev->dev.bus_id, device->cdev->id);
device->dev->dev.bus_id, device->cdev->id); result = sysfs_create_link(&device->dev->dev.kobj,
result = sysfs_create_link(&device->dev->dev.kobj, &device->cdev->device.kobj,
&device->cdev->device.kobj, "thermal_cooling");
"thermal_cooling"); if (result)
if (result) printk(KERN_ERR PREFIX "Create sysfs link\n");
printk(KERN_ERR PREFIX "Create sysfs link\n"); result = sysfs_create_link(&device->cdev->device.kobj,
result = sysfs_create_link(&device->cdev->device.kobj, &device->dev->dev.kobj,
&device->dev->dev.kobj, "device");
"device"); if (result)
if (result) printk(KERN_ERR PREFIX "Create sysfs link\n");
printk(KERN_ERR PREFIX "Create sysfs link\n");
}
} }
if (device->cap._DCS && device->cap._DSS){ if (device->cap._DCS && device->cap._DSS){
static int count = 0; static int count = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment