Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
From: Marco Felsch
Date: Thu Mar 05 2026 - 05:02:33 EST
On 26-03-05, Krzysztof Kozlowski wrote:
> On 05/03/2026 10:01, Marco Felsch wrote:
> > Hi Ming,
> >
> > On 26-03-05, ming.qian@xxxxxxxxxxx wrote:
> >> From: Ming Qian <ming.qian@xxxxxxxxxxx>
> >>
> >> Fix a kernel panic when probing the driver as a module:
> >>
> >> Unable to handle kernel paging request at virtual address
> >> ffffd9c18eb05000
> >> of_find_matching_node_and_match+0x5c/0x1a0
> >> hantro_probe+0x2f4/0x7d0 [hantro_vpu]
> >>
> >> The imx8mq_vpu_shared_resources array is referenced by variant
> >> structures through their shared_devices field. When built as a
> >> module, __initconst causes this data to be freed after module
> >> init, but it's later accessed during probe, causing a page fault.
> >>
> >> Use __initconst_or_module to keep the data available when built
> >> as a module while still allowing it to be freed when built-in.
> >
> > would be nice if I get at least some credit for pointing to the correct
> > fix ;)
> >
> >> Fixes: e0203ddf9af7 ("media: verisilicon: Avoid G2 bus error while decoding H.264 and HEVC")
> >> Signed-off-by: Ming Qian <ming.qian@xxxxxxxxxxx>
> >
> > However, patch looks fine:
> >
> > Reviewed-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
>
> Patch is not correct. This is being referenced from other data where
> nothing is __init. Section mismatch might not point it, but I don't
> think the code is readable and actually correct.
>
> You can exercise it by rebinding device when built-in.
That's correct, I didn't consider the manual unbind for the built-in
case in which you will trigger the issue again! Dropping the annotation
is the correct fix, thanks!
Regards,
Marco
>
> Best regards,
> Krzysztof
>
--
#gernperDu
#CallMeByMyFirstName
Pengutronix e.K. | |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |