[lm-sensors] [PATCH] hwmon: coretemp: fix oops on cpu unplug
guenter.roeck at ericsson.com
Mon Apr 30 18:59:24 CEST 2012
On Mon, 2012-04-30 at 12:19 -0400, Kirill A. Shutemov wrote:
> On Mon, Apr 30, 2012 at 08:28:10AM -0700, Guenter Roeck wrote:
> > Hi,
> > good catch. Couple of problems, though.
> > First, what number of cores are we talking about ? We should probably
> > increase NUM_REAL_CORES as well. Long term, we should get rid of the
> > dependency to prevent that problem from happening again, but that is a
> > different issue.
> It triggered by another bug. Cores on my 10-core processor have ids 0, 1,
> 2, 8, 9, 16, 17, 18, 24, 25. :-/
> No need to change NUM_REAL_CORES at the moment.
The problem, though, is that core_data is indexed by the core ID. So,
NUM_REAL_CORES is a bit misleading. It should probably be named
NUM_CORE_ID or something similar.
> > Second, we'll need the same code in get_core_online(). Otherwise the
> > platform device can be created for the new core (if the core is
> > re-enabled) but will never be deleted.
> It has already handled in create_core_data().
... which is called from coretemp_add_core(), which does not return an
error. Besides, it is called after the call to coretemp_device_add().
As a result, the platform device for the unsupported core(s) will be
created, even if the core is not supported. I just don't think that is a
Besides, if you'd have the check in get_core_online(), you would not
even hit the problem in put_core_offline(), since the platform device
would not exist and the function would bail out because of that.
More information about the lm-sensors