RE: [PATCH] gpio: xgs-iproc: Fix section mismatch on device tree match table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mark,

> From: Mark Brown, Sent: Tuesday, November 5, 2019 9:49 PM
> 
> The table of devicetree identifiers is annotated as __initconst
> indicating that it can be discarded after kernel boot but it is
> referenced from the driver struct which has no init annotation leading
> to a linker warning:
> 
> WARNING: vmlinux.o(.data+0x82d58): Section mismatch in reference from the variable bcm_iproc_gpio_driver to the
> variable .init.rodata:bcm_iproc_gpio_of_match
> The variable bcm_iproc_gpio_driver references
> the variable __initconst bcm_iproc_gpio_of_match
> 
> Since drivers can be probed after init the lack of annotation on the
> driver struct is correct so remove the annotation from the match table.
> 
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>

Thank you for the patch! Without this patch, I had encountered another
issue which my environment caused a panic when I tried to install a usb host
driver after booted [1]. But, I could resolved the issue after
I applied this patch. Also, I confirmed this patch could resolved the warning.

So,
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>

Best regards,
Yoshihiro Shimoda

---
[1]
[  146.541188] Unable to handle kernel paging request at virtual address ffff800011f73540
[  146.549099] Mem abort info:
[  146.551885]   ESR = 0x96000007
[  146.554934]   EC = 0x25: DABT (current EL), IL = 32 bits
[  146.560238]   SET = 0, FnV = 0
[  146.563284]   EA = 0, S1PTW = 0
[  146.566416] Data abort info:
[  146.569289]   ISV = 0, ISS = 0x00000007
[  146.573117]   CM = 0, WnR = 0
[  146.576078] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000049e4a000
[  146.582770] [ffff800011f73540] pgd=000000077ffff003, pud=000000077fffe003, pmd=000000077fffb003, pte=0000000000000000
[  146.593375] Internal error: Oops: 96000007 [#1] PREEMPT SMP
[  146.598944] CPU: 0 PID: 106 Comm: kworker/0:1 Not tainted 5.4.0-rc6-next-20191105 #87
[  146.606766] Hardware name: Renesas Salvator-X 2nd version board based on r8a7795 ES2.0+ (DT)
[  146.615209] Workqueue: events deferred_probe_work_func
[  146.620341] pstate: a0000085 (NzCv daIf -PAN -UAO)
[  146.625132] pc : __of_match_node.part.4+0x3c/0x78
[  146.629830] lr : of_match_node+0x3c/0x70
...
---


So,


Best regards,
Yoshihiro Shimoda


> ---
>  drivers/gpio/gpio-xgs-iproc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpio/gpio-xgs-iproc.c b/drivers/gpio/gpio-xgs-iproc.c
> index a3fdd95cc9e6..bb183f584d92 100644
> --- a/drivers/gpio/gpio-xgs-iproc.c
> +++ b/drivers/gpio/gpio-xgs-iproc.c
> @@ -299,7 +299,7 @@ static int __exit iproc_gpio_remove(struct platform_device *pdev)
>  	return 0;
>  }
> 
> -static const struct of_device_id bcm_iproc_gpio_of_match[] __initconst = {
> +static const struct of_device_id bcm_iproc_gpio_of_match[] = {
>  	{ .compatible = "brcm,iproc-gpio-cca" },
>  	{}
>  };
> --
> 2.20.1





[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux