Linux Power Management development
 help / color / mirror / Atom feed
* [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
@ 2026-03-05  8:03 ming.qian
  2026-03-05  9:01 ` Marco Felsch
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: ming.qian @ 2026-03-05  8:03 UTC (permalink / raw)
  To: linux-media
  Cc: mchehab, hverkuil-cisco, nicolas, benjamin.gaignard, robh,
	krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, m.felsch, fra.schnyder,
	linux-imx, l.stach, Frank.li, peng.fan, eagle.zhou, devicetree,
	imx, linux-pm, linux-kernel, linux-arm-kernel

From: Ming Qian <ming.qian@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@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", },
 	{ .compatible = "nxp,imx8mq-vpu-g2", },
 	{ /* sentinel */ }
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  8:03 [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse ming.qian
@ 2026-03-05  9:01 ` Marco Felsch
  2026-03-05  9:08   ` Ming Qian(OSS)
  2026-03-05  9:50   ` Krzysztof Kozlowski
  2026-03-05  9:08 ` Franz Schnyder
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 9+ messages in thread
From: Marco Felsch @ 2026-03-05  9:01 UTC (permalink / raw)
  To: ming.qian
  Cc: linux-media, mchehab, hverkuil-cisco, nicolas, benjamin.gaignard,
	robh, krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, fra.schnyder, linux-imx,
	l.stach, Frank.li, peng.fan, eagle.zhou, devicetree, imx,
	linux-pm, linux-kernel, linux-arm-kernel

Hi Ming,

On 26-03-05, ming.qian@oss.nxp.com wrote:
> From: Ming Qian <ming.qian@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.

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@oss.nxp.com>

However, patch looks fine:

Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>

> ---
>  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", },
>  	{ .compatible = "nxp,imx8mq-vpu-g2", },
>  	{ /* sentinel */ }
> -- 
> 2.52.0
> 
> 

-- 
#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    |

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  9:01 ` Marco Felsch
@ 2026-03-05  9:08   ` Ming Qian(OSS)
  2026-03-05  9:50   ` Krzysztof Kozlowski
  1 sibling, 0 replies; 9+ messages in thread
From: Ming Qian(OSS) @ 2026-03-05  9:08 UTC (permalink / raw)
  To: Marco Felsch
  Cc: linux-media, mchehab, hverkuil-cisco, nicolas, benjamin.gaignard,
	robh, krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, fra.schnyder, linux-imx,
	l.stach, Frank.li, peng.fan, eagle.zhou, devicetree, imx,
	linux-pm, linux-kernel, linux-arm-kernel

Hi Marco,

On 3/5/2026 5:01 PM, Marco Felsch wrote:
> Hi Ming,
> 
> On 26-03-05, ming.qian@oss.nxp.com wrote:
>> From: Ming Qian <ming.qian@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.
> 
> would be nice if I get at least some credit for pointing to the correct
> fix ;)

I'm sorry that I forget to add your Suggested-by tag.
I will include a Suggested-by tag in the next revision.
Appreciate your help.

Regards,
Ming

> 
>> Fixes: e0203ddf9af7 ("media: verisilicon: Avoid G2 bus error while decoding H.264 and HEVC")
>> Signed-off-by: Ming Qian <ming.qian@oss.nxp.com>
> 
> However, patch looks fine:
> 
> Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
> 
>> ---
>>   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", },
>>   	{ .compatible = "nxp,imx8mq-vpu-g2", },
>>   	{ /* sentinel */ }
>> -- 
>> 2.52.0
>>
>>
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  8:03 [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse ming.qian
  2026-03-05  9:01 ` Marco Felsch
@ 2026-03-05  9:08 ` Franz Schnyder
  2026-03-05  9:19 ` Krzysztof Kozlowski
  2026-03-05  9:28 ` Francesco Dolcini
  3 siblings, 0 replies; 9+ messages in thread
From: Franz Schnyder @ 2026-03-05  9:08 UTC (permalink / raw)
  To: ming.qian
  Cc: mchehab, hverkuil-cisco, nicolas, benjamin.gaignard, robh,
	krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, m.felsch, fra.schnyder,
	linux-imx, l.stach, Frank.li, peng.fan, eagle.zhou, devicetree,
	imx, linux-pm, linux-kernel, linux-arm-kernel

Hi,

On Thu, Mar 05, 2026 at 04:03:52PM +0800, ming.qian@oss.nxp.com wrote:
> From: Ming Qian <ming.qian@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.

Thanks for the fix. I tested it on our Verdin iMX8MP hardware.

Tested-by: Franz Schnyder <franz.schnyder@toradex.com>

Kind regards,
Franz

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  8:03 [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse ming.qian
  2026-03-05  9:01 ` Marco Felsch
  2026-03-05  9:08 ` Franz Schnyder
@ 2026-03-05  9:19 ` Krzysztof Kozlowski
  2026-03-05  9:28   ` Ming Qian(OSS)
  2026-03-05  9:28 ` Francesco Dolcini
  3 siblings, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-05  9:19 UTC (permalink / raw)
  To: ming.qian, linux-media
  Cc: mchehab, hverkuil-cisco, nicolas, benjamin.gaignard, robh,
	krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, m.felsch, fra.schnyder,
	linux-imx, l.stach, Frank.li, peng.fan, eagle.zhou, devicetree,
	imx, linux-pm, linux-kernel, linux-arm-kernel

On 05/03/2026 09:03, ming.qian@oss.nxp.com wrote:
> From: Ming Qian <ming.qian@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@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.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  8:03 [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse ming.qian
                   ` (2 preceding siblings ...)
  2026-03-05  9:19 ` Krzysztof Kozlowski
@ 2026-03-05  9:28 ` Francesco Dolcini
  3 siblings, 0 replies; 9+ messages in thread
From: Francesco Dolcini @ 2026-03-05  9:28 UTC (permalink / raw)
  To: ming.qian, fra.schnyder
  Cc: linux-media, mchehab, hverkuil-cisco, nicolas, benjamin.gaignard,
	robh, krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, m.felsch, linux-imx,
	l.stach, Frank.li, peng.fan, eagle.zhou, devicetree, imx,
	linux-pm, linux-kernel, linux-arm-kernel

On Thu, Mar 05, 2026 at 04:03:52PM +0800, ming.qian@oss.nxp.com wrote:
> From: Ming Qian <ming.qian@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@oss.nxp.com>

In addition to what Marco asked ...

Reported-by: Franz Schnyder <fra.schnyder@gmail.com>
Closes: https://lore.kernel.org/all/n3qmcb62tepxltoskpf7ws6yiirc2so62ia23b42rj3wlmpl67@rvkbuirx7kkp/



Francesco


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  9:19 ` Krzysztof Kozlowski
@ 2026-03-05  9:28   ` Ming Qian(OSS)
  0 siblings, 0 replies; 9+ messages in thread
From: Ming Qian(OSS) @ 2026-03-05  9:28 UTC (permalink / raw)
  To: Krzysztof Kozlowski, linux-media
  Cc: mchehab, hverkuil-cisco, nicolas, benjamin.gaignard, robh,
	krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, m.felsch, fra.schnyder,
	linux-imx, l.stach, Frank.li, peng.fan, eagle.zhou, devicetree,
	imx, linux-pm, linux-kernel, linux-arm-kernel

Hi,

On 3/5/2026 5:19 PM, Krzysztof Kozlowski wrote:
> On 05/03/2026 09:03, ming.qian@oss.nxp.com wrote:
>> From: Ming Qian <ming.qian@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@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
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  9:01 ` Marco Felsch
  2026-03-05  9:08   ` Ming Qian(OSS)
@ 2026-03-05  9:50   ` Krzysztof Kozlowski
  2026-03-05  9:57     ` Marco Felsch
  1 sibling, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-05  9:50 UTC (permalink / raw)
  To: Marco Felsch, ming.qian
  Cc: linux-media, mchehab, hverkuil-cisco, nicolas, benjamin.gaignard,
	robh, krzk+dt, conor+dt, p.zabel, sebastian.fricke, shawnguo,
	ulf.hansson, s.hauer, kernel, festevam, fra.schnyder, linux-imx,
	l.stach, Frank.li, peng.fan, eagle.zhou, devicetree, imx,
	linux-pm, linux-kernel, linux-arm-kernel

On 05/03/2026 10:01, Marco Felsch wrote:
> Hi Ming,
> 
> On 26-03-05, ming.qian@oss.nxp.com wrote:
>> From: Ming Qian <ming.qian@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.
> 
> 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@oss.nxp.com>
> 
> However, patch looks fine:
> 
> Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>

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.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse
  2026-03-05  9:50   ` Krzysztof Kozlowski
@ 2026-03-05  9:57     ` Marco Felsch
  0 siblings, 0 replies; 9+ messages in thread
From: Marco Felsch @ 2026-03-05  9:57 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: ming.qian, linux-media, mchehab, hverkuil-cisco, nicolas,
	benjamin.gaignard, robh, krzk+dt, conor+dt, p.zabel,
	sebastian.fricke, shawnguo, ulf.hansson, s.hauer, kernel,
	festevam, fra.schnyder, linux-imx, l.stach, Frank.li, peng.fan,
	eagle.zhou, devicetree, imx, linux-pm, linux-kernel,
	linux-arm-kernel

On 26-03-05, Krzysztof Kozlowski wrote:
> On 05/03/2026 10:01, Marco Felsch wrote:
> > Hi Ming,
> > 
> > On 26-03-05, ming.qian@oss.nxp.com wrote:
> >> From: Ming Qian <ming.qian@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.
> > 
> > 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@oss.nxp.com>
> > 
> > However, patch looks fine:
> > 
> > Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
> 
> 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    |

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-03-05  9:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-05  8:03 [PATCH] media: verisilicon: Fix kernel panic due to __initconst misuse ming.qian
2026-03-05  9:01 ` Marco Felsch
2026-03-05  9:08   ` Ming Qian(OSS)
2026-03-05  9:50   ` Krzysztof Kozlowski
2026-03-05  9:57     ` Marco Felsch
2026-03-05  9:08 ` Franz Schnyder
2026-03-05  9:19 ` Krzysztof Kozlowski
2026-03-05  9:28   ` Ming Qian(OSS)
2026-03-05  9:28 ` Francesco Dolcini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox