[PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
Ming Qian(OSS)
ming.qian at oss.nxp.com
Thu Mar 5 01:28:56 PST 2026
Hi,
On 3/5/2026 5:19 PM, Krzysztof Kozlowski wrote:
> On 05/03/2026 09:03, ming.qian at oss.nxp.com wrote:
>> From: Ming Qian <ming.qian at oss.nxp.com>
>>
>> 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.
>>
>> Fixes: e0203ddf9af7 ("media: verisilicon: Avoid G2 bus error while decoding H.264 and HEVC")
>> Signed-off-by: Ming Qian <ming.qian at oss.nxp.com>
>> ---
>> drivers/media/platform/verisilicon/imx8m_vpu_hw.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/verisilicon/imx8m_vpu_hw.c b/drivers/media/platform/verisilicon/imx8m_vpu_hw.c
>> index 6f8e43b7f157..fa429e6e8281 100644
>> --- a/drivers/media/platform/verisilicon/imx8m_vpu_hw.c
>> +++ b/drivers/media/platform/verisilicon/imx8m_vpu_hw.c
>> @@ -343,7 +343,7 @@ const struct hantro_variant imx8mq_vpu_variant = {
>> .num_regs = ARRAY_SIZE(imx8mq_reg_names)
>> };
>>
>> -static const struct of_device_id imx8mq_vpu_shared_resources[] __initconst = {
>> +static const struct of_device_id imx8mq_vpu_shared_resources[] __initconst_or_module = {
>> { .compatible = "nxp,imx8mq-vpu-g1", },
>
>
> I have some doubts this was tested with section mismatch analysis. It is
> still referenced by non initconst data, but it should not. You have a
> dangling pointer.
>
> And build test would probably point it out.
Thanks, that makes sense.
I'll remove the annotation and let it live in the normal .rodata
section.
An updated patch will follow.
Regards,
Ming
>
> Best regards,
> Krzysztof
>
More information about the linux-arm-kernel
mailing list