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