Re: [PATCH 2/4] hwmon: (coretemp) update hotplug condition check

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

 



于 7/15/2010 2:06 PM, Guenter Roeck 写道:
On Wed, Jul 14, 2010 at 10:46:42PM -0400, Chen Gong wrote:
this patch fixes two errors about hotplug. One is for
hotplug notifier. The other is unnecessary driver unregister.
Because even none of online cpus supports coretemp, we can't
assume new onlined cpu doesn't support it either. If related
driver is unregistered there we have no chance to use coretemp
from then on.

Signed-off-by: Chen Gong<gong.chen@xxxxxxxxxxxxxxx>
---
  drivers/hwmon/coretemp.c |    9 +++------
  1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index b89f6a2..7b7c5b8 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -514,10 +514,13 @@ static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb,

  	switch (action) {
  	case CPU_ONLINE:
+	case CPU_ONLINE_FROZEN:
  	case CPU_DOWN_FAILED:
+	case CPU_DOWN_FAILED_FROZEN:
  		coretemp_device_add(cpu);
  		break;
  	case CPU_DOWN_PREPARE:
+	case CPU_DOWN_PREPARE_FROZEN:
  		coretemp_device_remove(cpu);
  		break;
  	}
@@ -559,10 +562,6 @@ static int __init coretemp_init(void)
  				" has no thermal sensor.\n", c->x86_model);
  		}
  	}
-	if (list_empty(&pdev_list)) {
-		err = -ENODEV;
-		goto exit_driver_unreg;
-	}

  #ifdef CONFIG_HOTPLUG_CPU
  	register_hotcpu_notifier(&coretemp_cpu_notifier);
@@ -577,8 +576,6 @@ exit_devices_unreg:
  		kfree(p);
  	}
  	mutex_unlock(&pdev_list_mutex);
-exit_driver_unreg:
-	platform_driver_unregister(&coretemp_driver);

I am not sure if it is a good idea to remove platform_driver_unregister() here.
There is still an error exit to exit_devices_unreg:, and presumably this error
exit should also remove the platform driver. Or is there a reason not to remove it
even if the init function returns an error ?

As I said before, if the related driver is unregistered, new added device can be add to the platform bus, but the coordinate driver is gone.


  exit:
  	return err;
  }
--
1.7.1.571.gba4d01




_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux