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

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.linux.kernel
Message-ID <01d0e84f80124c4ef358bfd1503475856d2aa789.camel@physik.fu-berlin.de>
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.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
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.