From: Sui JIngfeng <sui.jingfeng@linux.dev>
To: Julia Lawall <julia.lawall@inria.fr>,
Lucas Stach <l.stach@pengutronix.de>
Cc: Linux Memory Management List <linux-mm@kvack.org>,
oe-kbuild-all@lists.linux.dev
Subject: Re: [linux-next:master 139/1036] drivers/gpu/drm/etnaviv/etnaviv_drv.c:614:3-14: ERROR: probable double put. (fwd)
Date: Mon, 22 Jan 2024 21:49:54 +0800 [thread overview]
Message-ID: <8f844ac1-eecf-4ace-854e-6d7d7aad9ad6@linux.dev> (raw)
In-Reply-To: <94afe420-f3b-5620-2380-82c9c62838f0@inria.fr>
Hi,
On 2024/1/22 20:33, Julia Lawall wrote:
> The of_node_put on line 614 does not look useful.
Simply delete that line would solve this problem, what do you think?
>
> ---------- Forwarded message ----------
> Date: Mon, 22 Jan 2024 19:18:22 +0800
> From: kernel test robot <lkp@intel.com>
> To: oe-kbuild@lists.linux.dev
> Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
> Subject: [linux-next:master 139/1036]
> drivers/gpu/drm/etnaviv/etnaviv_drv.c:614:3-14: ERROR: probable double put.
>
> BCC: lkp@intel.com
> CC: oe-kbuild-all@lists.linux.dev
> CC: Linux Memory Management List <linux-mm@kvack.org>
> TO: Sui Jingfeng <suijingfeng@loongson.cn>
> CC: Lucas Stach <l.stach@pengutronix.de>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: 319fbd8fc6d339e0a1c7b067eed870c518a13a02
> commit: 56df40c804fa40712239478355abe265aeda2197 [139/1036] drm/etnaviv: Add a helper to get the first available GPU device node
> :::::: branch date: 10 hours ago
> :::::: commit date: 3 months ago
> config: x86_64-randconfig-102-20240122 (https://download.01.org/0day-ci/archive/20240122/202401221903.GjEKVu8R-lkp@intel.com/config)
> compiler: ClangBuiltLinux clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Julia Lawall <julia.lawall@inria.fr>
> | Closes: https://lore.kernel.org/r/202401221903.GjEKVu8R-lkp@intel.com/
>
> cocci warnings: (new ones prefixed by >>)
>>> drivers/gpu/drm/etnaviv/etnaviv_drv.c:614:3-14: ERROR: probable double put.
> vim +614 drivers/gpu/drm/etnaviv/etnaviv_drv.c
>
> a8c21a5451d831 The etnaviv authors 2015-12-03 597
> a8c21a5451d831 The etnaviv authors 2015-12-03 598 static int etnaviv_pdev_probe(struct platform_device *pdev)
> a8c21a5451d831 The etnaviv authors 2015-12-03 599 {
> a8c21a5451d831 The etnaviv authors 2015-12-03 600 struct device *dev = &pdev->dev;
> 0ea057a9cb2be4 Michael Walle 2021-09-07 601 struct device_node *first_node = NULL;
> a8c21a5451d831 The etnaviv authors 2015-12-03 602 struct component_match *match = NULL;
> a8c21a5451d831 The etnaviv authors 2015-12-03 603
> 246774d17fc05a Lucas Stach 2018-01-24 604 if (!dev->platform_data) {
> a8c21a5451d831 The etnaviv authors 2015-12-03 605 struct device_node *core_node;
> a8c21a5451d831 The etnaviv authors 2015-12-03 606
> 246774d17fc05a Lucas Stach 2018-01-24 607 for_each_compatible_node(core_node, NULL, "vivante,gc") {
> 246774d17fc05a Lucas Stach 2018-01-24 608 if (!of_device_is_available(core_node))
> 246774d17fc05a Lucas Stach 2018-01-24 609 continue;
> a8c21a5451d831 The etnaviv authors 2015-12-03 610
> 97ac0e47aed5f6 Russell King 2016-10-19 611 drm_of_component_match_add(&pdev->dev, &match,
> 0a522394202f1f Yong Wu 2022-02-14 612 component_compare_of, core_node);
> 56df40c804fa40 Sui Jingfeng 2023-10-02 613
> 56df40c804fa40 Sui Jingfeng 2023-10-02 @614 of_node_put(core_node);
> a8c21a5451d831 The etnaviv authors 2015-12-03 615 }
> 246774d17fc05a Lucas Stach 2018-01-24 616 } else {
> a8c21a5451d831 The etnaviv authors 2015-12-03 617 char **names = dev->platform_data;
> a8c21a5451d831 The etnaviv authors 2015-12-03 618 unsigned i;
> a8c21a5451d831 The etnaviv authors 2015-12-03 619
> a8c21a5451d831 The etnaviv authors 2015-12-03 620 for (i = 0; names[i]; i++)
> 0a522394202f1f Yong Wu 2022-02-14 621 component_match_add(dev, &match, component_compare_dev_name, names[i]);
> a8c21a5451d831 The etnaviv authors 2015-12-03 622 }
> a8c21a5451d831 The etnaviv authors 2015-12-03 623
> f5be833dc86f49 Michael Walle 2021-09-07 624 /*
> f5be833dc86f49 Michael Walle 2021-09-07 625 * PTA and MTLB can have 40 bit base addresses, but
> f5be833dc86f49 Michael Walle 2021-09-07 626 * unfortunately, an entry in the MTLB can only point to a
> f5be833dc86f49 Michael Walle 2021-09-07 627 * 32 bit base address of a STLB. Moreover, to initialize the
> f5be833dc86f49 Michael Walle 2021-09-07 628 * MMU we need a command buffer with a 32 bit address because
> f5be833dc86f49 Michael Walle 2021-09-07 629 * without an MMU there is only an indentity mapping between
> f5be833dc86f49 Michael Walle 2021-09-07 630 * the internal 32 bit addresses and the bus addresses.
> f5be833dc86f49 Michael Walle 2021-09-07 631 *
> f5be833dc86f49 Michael Walle 2021-09-07 632 * To make things easy, we set the dma_coherent_mask to 32
> f5be833dc86f49 Michael Walle 2021-09-07 633 * bit to make sure we are allocating the command buffers and
> f5be833dc86f49 Michael Walle 2021-09-07 634 * TLBs in the lower 4 GiB address space.
> f5be833dc86f49 Michael Walle 2021-09-07 635 */
> f5be833dc86f49 Michael Walle 2021-09-07 636 if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(40)) ||
> f5be833dc86f49 Michael Walle 2021-09-07 637 dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
> f5be833dc86f49 Michael Walle 2021-09-07 638 dev_dbg(&pdev->dev, "No suitable DMA available\n");
> f5be833dc86f49 Michael Walle 2021-09-07 639 return -ENODEV;
> f5be833dc86f49 Michael Walle 2021-09-07 640 }
> f5be833dc86f49 Michael Walle 2021-09-07 641
> 0ea057a9cb2be4 Michael Walle 2021-09-07 642 /*
> 0ea057a9cb2be4 Michael Walle 2021-09-07 643 * Apply the same DMA configuration to the virtual etnaviv
> 0ea057a9cb2be4 Michael Walle 2021-09-07 644 * device as the GPU we found. This assumes that all Vivante
> 0ea057a9cb2be4 Michael Walle 2021-09-07 645 * GPUs in the system share the same DMA constraints.
> 0ea057a9cb2be4 Michael Walle 2021-09-07 646 */
> 56df40c804fa40 Sui Jingfeng 2023-10-02 647 first_node = etnaviv_of_first_available_node();
> 56df40c804fa40 Sui Jingfeng 2023-10-02 648 if (first_node) {
> 0ea057a9cb2be4 Michael Walle 2021-09-07 649 of_dma_configure(&pdev->dev, first_node, true);
> 56df40c804fa40 Sui Jingfeng 2023-10-02 650 of_node_put(first_node);
> 56df40c804fa40 Sui Jingfeng 2023-10-02 651 }
> 0ea057a9cb2be4 Michael Walle 2021-09-07 652
> a8c21a5451d831 The etnaviv authors 2015-12-03 653 return component_master_add_with_match(dev, &etnaviv_master_ops, match);
> a8c21a5451d831 The etnaviv authors 2015-12-03 654 }
> a8c21a5451d831 The etnaviv authors 2015-12-03 655
>
next prev parent reply other threads:[~2024-01-22 13:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-22 12:33 [linux-next:master 139/1036] drivers/gpu/drm/etnaviv/etnaviv_drv.c:614:3-14: ERROR: probable double put. (fwd) Julia Lawall
2024-01-22 13:38 ` Sui JIngfeng
2024-01-22 13:49 ` Sui JIngfeng [this message]
2024-01-23 9:25 ` Lucas Stach
2024-01-23 11:46 ` Sui Jingfeng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8f844ac1-eecf-4ace-854e-6d7d7aad9ad6@linux.dev \
--to=sui.jingfeng@linux.dev \
--cc=julia.lawall@inria.fr \
--cc=l.stach@pengutronix.de \
--cc=linux-mm@kvack.org \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.