merged.

Bruce


In message: [linux-yocto][linux-yocto v5.4/standard/nxp-s32g2xx][PATCH] 
s32gen1: pcie: Remove duplicate interrupt resource request
on 16/11/2020 Xulin Sun wrote:

> This fixes the below kmemleak call trace:
> 
> unreferenced object 0xffffff88784d5980 (size 128):
> comm "swapper/0", pid 1, jiffies 4294902557 (age 818.400s)
> hex dump (first 32 bytes):
> 30 5b 93 10 c0 ff ff ff b0 a8 1f 6d 88 ff ff ff 0[.........m....
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace:
> [<0000000074293536>] kmem_cache_alloc_trace+0x210/0x40c
> [<00000000093fdcf7>] request_threaded_irq+0xac/0x190
> [<000000007f996a2c>] devm_request_threaded_irq+0x88/0x100
> [<000000003d0d78cc>] s32gen1_add_pcie_port+0xb8/0x140
> [<00000000cc74b4c2>] s32gen1_pcie_probe+0x2d8/0x530
> [<0000000003a11c47>] platform_drv_probe+0x5c/0xb0
> [<000000009e95fb7f>] really_probe+0x2c8/0x4c0
> [<00000000ec5319dd>] driver_probe_device+0xa8/0x140
> [<0000000051d2c2b2>] device_driver_attach+0xc8/0xd0
> [<0000000095c059b0>] __driver_attach+0x100/0x180
> [<000000004ab82003>] bus_for_each_dev+0x84/0xe0
> [<0000000016820dbb>] driver_attach+0x34/0x40
> [<00000000dd144a96>] bus_add_driver+0x138/0x224
> [<00000000b139f009>] driver_register+0x7c/0x124
> [<000000002c21c5fe>] __platform_driver_probe+0x88/0x150
> [<00000000bbf513f8>] s32gen1_pcie_init+0x30/0x38
> 
> That showed the allocated "action" of the function "request_threaded_irq" is 
> not
> freed.
> The reason is that the "action" of msi irq is overwrote by below calling path,
> and caused the allocated memory becoming an island and reported the kmemleak 
> call
> trace.
> 
> dw_pcie_host_init
>       irq_set_chained_handler_and_data
>               __irq_do_set_handler
>                       desc->action = &chained_action;
> 
> So remove duplicate interrupt resource request, just do it in
> dw_pcie_host_init().
> 
> Signed-off-by: Xulin Sun <xulin....@windriver.com>
> ---
>  drivers/pci/controller/dwc/pci-s32gen1.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pci-s32gen1.c 
> b/drivers/pci/controller/dwc/pci-s32gen1.c
> index e76b001354bb..748adb4015e8 100644
> --- a/drivers/pci/controller/dwc/pci-s32gen1.c
> +++ b/drivers/pci/controller/dwc/pci-s32gen1.c
> @@ -870,9 +870,8 @@ static int __init s32gen1_add_pcie_port(struct pcie_port 
> *pp,
>       DEBUG_FUNC;
>  
>  #ifdef CONFIG_PCI_MSI
> -     ret = s32gen1_pcie_config_irq(&pp->msi_irq, "msi", pdev,
> -                                   s32gen1_pcie_msi_handler, pp);
> -     if (ret) {
> +     pp->msi_irq = platform_get_irq_byname(pdev, "msi");
> +     if (pp->msi_irq <= 0) {
>               dev_err(&pdev->dev, "failed to request msi irq\n");
>               return ret;
>       }
> -- 
> 2.26.2
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#9177): 
https://lists.yoctoproject.org/g/linux-yocto/message/9177
Mute This Topic: https://lists.yoctoproject.org/mt/78286528/21656
Group Owner: linux-yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to