Re: [PATCH] sh: hp6xx: unset apm_get_power_status on unload

Artur Rojek <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.linux.kernel
Message-ID <[email protected]>
On 2026-04-12 09:30, John Paul Adrian Glaubitz wrote:
> Hi Ahelenia,
> 
> On Fri, 2025-10-17 at 00:05 +0200, Ahelenia Ziemiańska wrote:
>> The API for apm_get_power_status is "call it if it isn't NULL".
>> If the module is unloaded and it's not unset,
>> reading /proc/apm will jump into unloaded kernel memory.
>> 
>> The first commit that added this incompletely refactored
>> the assigned-to variable in __exit,
>> the second deleted it instead of fixing it.
>> 
>> Unset it on unload like drivers/macintosh/apm_emu.c.
>> 
>> Fixes: 0a9b0db19262 ("[APM] SH: Convert to use shared APM emulation.")
>> Fixes: 8c8ee8254767 ("sh: hp6xx: APM build fix and new battery 
>> values.")
>> Signed-off-by: Ahelenia Ziemiańska <[email protected]>
>> ---
>>  arch/sh/boards/mach-hp6xx/hp6xx_apm.c | 3 +++
>>  1 file changed, 3 insertions(+)
>> 
>> diff --git a/arch/sh/boards/mach-hp6xx/hp6xx_apm.c 
>> b/arch/sh/boards/mach-hp6xx/hp6xx_apm.c
>> index e5c4c7d34139..089eca39c4e6 100644
>> --- a/arch/sh/boards/mach-hp6xx/hp6xx_apm.c
>> +++ b/arch/sh/boards/mach-hp6xx/hp6xx_apm.c
>> @@ -98,6 +98,9 @@ static int __init hp6x0_apm_init(void)
>> 
>>  static void __exit hp6x0_apm_exit(void)
>>  {
>> +	if (apm_get_power_status == hp6x0_apm_get_power_status)
>> +		apm_get_power_status = NULL;
>> +
>>  	free_irq(HP680_BTN_IRQ, 0);
>>  }
>> 
> 
> Let's CC Artur Rojek who has worked on the hp6xx code before and should 
> give his ACK.

This driver can't be built as a module, so this code is never called.
But since we can't get rid of module_exit(apm_exit):

Acked-by: Artur Rojek <[email protected]>

Cheers,
Artur

> 
> Adrian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.