Re: [lm-sensors] [PATCH] x86/hwmon: fix module init for hotplug-but-no-device-found case

From: Jan Beulich
Date: Tue Sep 14 2010 - 04:19:21 EST


>>> On 14.09.10 at 09:46, Chen Gong <gong.chen@xxxxxxxxxxxxxxx> wrote:
> ä 9/14/2010 2:47 PM, Jan Beulich åé:
>>>>> On 14.09.10 at 08:30, Chen Gong<gong.chen@xxxxxxxxxxxxxxx> wrote:
>>> ä 9/13/2010 6:05 PM, Jan Beulich åé:
>>>> In commit 0dca94baeab4a1a514841b0a4c8e3a51dfb4d5ae the call to
>>>> platform_driver_unregister() was made conditional upon !HOTPLUG_CPU,
>>>> but the return value from coretemp_init() was left to indicate an
>>>> error. This isn't correct, as the negative return value indicates to
>>>> the module loader that initialization failed, which isn't intended
>>>
>>> only !HOTPLUG_CPU can remove the driver. That is what we need to do
>>> because under the hotplug condition, we need to consider those "offline"
>>> cpus. I don't understand what you are afraid. Can you give me a scinario ?
>>
>> If the driver's init routine returns -ENODEV (like is the case without this
>> change when HOTPLUG_CPU is enabled and there is no device found),
>> the platform driver will remain registered, yet the driver memory will
>> get freed (leaving dangling pointers into the driver's former image). Or
>
> Under this condition, I can't fine who frees the memory of the platform
> driver

I'm not talking about the control structure, but about the driver's
code and data.

>> in other words - when leaving the driver registered, the return value
>> of the init function must be zero.
>
> Is it mandotary or just some kind of convention ?

Mandatory.

Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/