> -----Original Message----- > From: Zhao, Yakui > Sent: Friday, February 15, 2008 12:21 PM > To: Thomas, Sujith > Cc: lenb@xxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; 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 <sujith.thomas@xxxxxxxxx> > > > > 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 <sujith.thomas@xxxxxxxxx> 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 <sujith.thomas@xxxxxxxxx> 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;
Attachment:
[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