RE: [patch 4/6] ACPI processor: extract return values using PTR_ERR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 

> -----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


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux