> -----Original Message----- > From: Zhao, Yakui > Sent: Friday, February 15, 2008 12:21 PM > To: Thomas, Sujith > Cc: [EMAIL PROTECTED]; [email protected]; Zhang, Rui > Subject: Re: [patch 4/6] ACPI processor: extract return > values using PTR_ERR > > On Fri, 2008-02-15 at 10:54 +0530, Thomas, Sujith wrote: > > From: Thomas Sujith <[EMAIL PROTECTED]> > > > > Need to extract errors using PTR_ERR macro and > > process accordingly.thermal_cooling_device_register > > returning NULL means that CONFIG_THERMAL=n and in that > > case no need to create symbolic links.
> Very good. But is it necessary to check whether the cooling device
> exists before it is unregistered?
I agree; resending the patch
Subject: ACPI processor : extract return values using PTR_ERR
From: Thomas Sujith <[EMAIL PROTECTED]>
Need to extract errors using PTR_ERR macro and
process accordingly.thermal_cooling_device_register
returning NULL means that CONFIG_THERMAL=n and in that
case no need to create symbolic links.
Signed-off-by: Thomas Sujith <[EMAIL PROTECTED]>
drivers/acpi/processor_core.c | 37
++++++++++++++++++++++---------------
1 files changed, 22 insertions(+), 15 deletions(-)
Index: linux-2.6.24/drivers/acpi/processor_core.c
===================================================================
--- linux-2.6.24.orig/drivers/acpi/processor_core.c
+++ linux-2.6.24/drivers/acpi/processor_core.c
@@ -670,21 +670,26 @@ static int __cpuinit acpi_processor_star
pr->cdev = thermal_cooling_device_register("Processor", device,
&processor_cooling_ops);
- if (pr->cdev)
+ if (IS_ERR(pr->cdev)) {
+ result = PTR_ERR(pr->cdev);
+ goto end;
+ }
+ if (pr->cdev) {
printk(KERN_INFO PREFIX
"%s is registered as cooling_device%d\n",
device->dev.bus_id, pr->cdev->id);
- else
- goto end;
- result = sysfs_create_link(&device->dev.kobj,
&pr->cdev->device.kobj,
- "thermal_cooling");
- if (result)
- return result;
- result = sysfs_create_link(&pr->cdev->device.kobj,
&device->dev.kobj,
- "device");
- if (result)
- return result;
+ result = sysfs_create_link(&device->dev.kobj,
+ &pr->cdev->device.kobj,
+ "thermal_cooling");
+ if (result)
+ return result;
+ result = sysfs_create_link(&pr->cdev->device.kobj,
+ &device->dev.kobj,
+ "device");
+ if (result)
+ return result;
+ }
if (pr->flags.throttling) {
printk(KERN_INFO PREFIX "%s [%s] (supports",
@@ -809,10 +814,12 @@ static int acpi_processor_remove(struct
acpi_processor_remove_fs(device);
- sysfs_remove_link(&device->dev.kobj, "thermal_cooling");
- sysfs_remove_link(&pr->cdev->device.kobj, "device");
- thermal_cooling_device_unregister(pr->cdev);
- pr->cdev = NULL;
+ if (pr->cdev) {
+ sysfs_remove_link(&device->dev.kobj, "thermal_cooling");
+ sysfs_remove_link(&pr->cdev->device.kobj, "device");
+ thermal_cooling_device_unregister(pr->cdev);
+ pr->cdev = NULL;
+ }
processors[pr->id] = NULL;
[patch 4 of 6] ACPI processor - extract return value using PTR_ERR
Description: [patch 4 of 6] ACPI processor - extract return value using PTR_ERR
