All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [cip:linux-5.10.y-cip-rebase 606/1105] drivers/usb/host/xhci-plat.c:382 xhci_generic_plat_probe() error: we previously assumed 'sysdev' could be null (see line 372)
Date: Tue, 15 Oct 2024 07:01:17 +0800	[thread overview]
Message-ID: <202410150653.RDBoPiA3-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git linux-5.10.y-cip-rebase
head:   3cdd0cc9c0e53917e2c4e56b1e7256ae8923845e
commit: 7ce55f4ea24048dd70fb4aa8f522c94d5f767f08 [606/1105] xhci: split out rcar/rz support from xhci-plat.c
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: x86_64-randconfig-161-20241014 (https://download.01.org/0day-ci/archive/20241015/202410150653.RDBoPiA3-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)

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: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410150653.RDBoPiA3-lkp@intel.com/

smatch warnings:
drivers/usb/host/xhci-plat.c:382 xhci_generic_plat_probe() error: we previously assumed 'sysdev' could be null (see line 372)
drivers/usb/host/xhci-plat.c:494 xhci_plat_resume() warn: 'xhci->clk' from clk_prepare_enable() not released on lines: 494.
drivers/usb/host/xhci-plat.c:494 xhci_plat_resume() warn: 'xhci->reg_clk' from clk_prepare_enable() not released on lines: 494.

vim +/sysdev +382 drivers/usb/host/xhci-plat.c

7ce55f4ea24048 Arnd Bergmann             2023-06-01  358  
7ce55f4ea24048 Arnd Bergmann             2023-06-01  359  static int xhci_generic_plat_probe(struct platform_device *pdev)
7ce55f4ea24048 Arnd Bergmann             2023-06-01  360  {
7ce55f4ea24048 Arnd Bergmann             2023-06-01  361  	const struct xhci_plat_priv *priv_match;
7ce55f4ea24048 Arnd Bergmann             2023-06-01  362  	struct device *sysdev;
7ce55f4ea24048 Arnd Bergmann             2023-06-01  363  	int ret;
7ce55f4ea24048 Arnd Bergmann             2023-06-01  364  
7ce55f4ea24048 Arnd Bergmann             2023-06-01  365  	/*
7ce55f4ea24048 Arnd Bergmann             2023-06-01  366  	 * sysdev must point to a device that is known to the system firmware
7ce55f4ea24048 Arnd Bergmann             2023-06-01  367  	 * or PCI hardware. We handle these three cases here:
7ce55f4ea24048 Arnd Bergmann             2023-06-01  368  	 * 1. xhci_plat comes from firmware
7ce55f4ea24048 Arnd Bergmann             2023-06-01  369  	 * 2. xhci_plat is child of a device from firmware (dwc3-plat)
7ce55f4ea24048 Arnd Bergmann             2023-06-01  370  	 * 3. xhci_plat is grandchild of a pci device (dwc3-pci)
7ce55f4ea24048 Arnd Bergmann             2023-06-01  371  	 */
7ce55f4ea24048 Arnd Bergmann             2023-06-01 @372  	for (sysdev = &pdev->dev; sysdev; sysdev = sysdev->parent) {
7ce55f4ea24048 Arnd Bergmann             2023-06-01  373  		if (is_of_node(sysdev->fwnode) ||
7ce55f4ea24048 Arnd Bergmann             2023-06-01  374  			is_acpi_device_node(sysdev->fwnode))
7ce55f4ea24048 Arnd Bergmann             2023-06-01  375  			break;
7ce55f4ea24048 Arnd Bergmann             2023-06-01  376  #ifdef CONFIG_PCI
7ce55f4ea24048 Arnd Bergmann             2023-06-01  377  		else if (sysdev->bus == &pci_bus_type)
7ce55f4ea24048 Arnd Bergmann             2023-06-01  378  			break;
7ce55f4ea24048 Arnd Bergmann             2023-06-01  379  #endif
7ce55f4ea24048 Arnd Bergmann             2023-06-01  380  	}
7ce55f4ea24048 Arnd Bergmann             2023-06-01  381  
7ce55f4ea24048 Arnd Bergmann             2023-06-01 @382  	if (WARN_ON(!sysdev->dma_mask)) {
7ce55f4ea24048 Arnd Bergmann             2023-06-01  383  		/* Platform did not initialize dma_mask */
7ce55f4ea24048 Arnd Bergmann             2023-06-01  384  		ret = dma_coerce_mask_and_coherent(sysdev, DMA_BIT_MASK(64));
7ce55f4ea24048 Arnd Bergmann             2023-06-01  385  		if (ret)
7ce55f4ea24048 Arnd Bergmann             2023-06-01  386  			return ret;
7ce55f4ea24048 Arnd Bergmann             2023-06-01  387  	}
7ce55f4ea24048 Arnd Bergmann             2023-06-01  388  
7ce55f4ea24048 Arnd Bergmann             2023-06-01  389  	if (pdev->dev.of_node)
7ce55f4ea24048 Arnd Bergmann             2023-06-01  390  		priv_match = of_device_get_match_data(&pdev->dev);
7ce55f4ea24048 Arnd Bergmann             2023-06-01  391  	else
7ce55f4ea24048 Arnd Bergmann             2023-06-01  392  		priv_match = dev_get_platdata(&pdev->dev);
7ce55f4ea24048 Arnd Bergmann             2023-06-01  393  
7ce55f4ea24048 Arnd Bergmann             2023-06-01  394  	return xhci_plat_probe(pdev, sysdev, priv_match);
7ce55f4ea24048 Arnd Bergmann             2023-06-01  395  }
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  396  
7ce55f4ea24048 Arnd Bergmann             2023-06-01  397  int xhci_plat_remove(struct platform_device *dev)
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  398  {
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  399  	struct usb_hcd	*hcd = platform_get_drvdata(dev);
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  400  	struct xhci_hcd	*xhci = hcd_to_xhci(hcd);
4718c177405112 Gregory CLEMENT           2014-05-15  401  	struct clk *clk = xhci->clk;
3ae2da7b28b393 Gregory CLEMENT           2018-04-20  402  	struct clk *reg_clk = xhci->reg_clk;
f068090426ea8d Mathias Nyman             2018-11-09  403  	struct usb_hcd *shared_hcd = xhci->shared_hcd;
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  404  
1449cb2c2253d3 Li Jun                    2020-05-14  405  	pm_runtime_get_sync(&dev->dev);
dcc7620cad5ad1 Guenter Roeck             2017-03-09  406  	xhci->xhc_state |= XHCI_STATE_REMOVING;
dcc7620cad5ad1 Guenter Roeck             2017-03-09  407  
f068090426ea8d Mathias Nyman             2018-11-09  408  	usb_remove_hcd(shared_hcd);
f068090426ea8d Mathias Nyman             2018-11-09  409  	xhci->shared_hcd = NULL;
7b8ef22ea547b8 Maxime Ripard             2015-03-17  410  	usb_phy_shutdown(hcd->usb_phy);
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  411  
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  412  	usb_remove_hcd(hcd);
f068090426ea8d Mathias Nyman             2018-11-09  413  	usb_put_hcd(shared_hcd);
4ac53087d6d48e Roger Quadros             2015-05-29  414  
4718c177405112 Gregory CLEMENT           2014-05-15  415  	clk_disable_unprepare(clk);
3ae2da7b28b393 Gregory CLEMENT           2018-04-20  416  	clk_disable_unprepare(reg_clk);
8b67c4750f869a Biju Das                  2023-06-01  417  	reset_control_assert(xhci->reset);
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  418  	usb_put_hcd(hcd);
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  419  
b0c69b4bace370 Baolin Wang               2017-04-19  420  	pm_runtime_disable(&dev->dev);
1449cb2c2253d3 Li Jun                    2020-05-14  421  	pm_runtime_put_noidle(&dev->dev);
1449cb2c2253d3 Li Jun                    2020-05-14  422  	pm_runtime_set_suspended(&dev->dev);
b0c69b4bace370 Baolin Wang               2017-04-19  423  
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  424  	return 0;
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  425  }
7ce55f4ea24048 Arnd Bergmann             2023-06-01  426  EXPORT_SYMBOL_GPL(xhci_plat_remove);
3429e91a661e1f Sebastian Andrzej Siewior 2012-03-13  427  
d852ed98f62e0d Arnd Bergmann             2017-04-21  428  static int __maybe_unused xhci_plat_suspend(struct device *dev)
57d04eb131ec9d Vikas Sajjan              2013-02-11  429  {
57d04eb131ec9d Vikas Sajjan              2013-02-11  430  	struct usb_hcd	*hcd = dev_get_drvdata(dev);
57d04eb131ec9d Vikas Sajjan              2013-02-11  431  	struct xhci_hcd	*xhci = hcd_to_xhci(hcd);
5e0e54ff892487 Peter Chen                2020-09-18  432  	int ret;
57d04eb131ec9d Vikas Sajjan              2013-02-11  433  
20c51a4c52208f Frank Li                  2022-01-10  434  	if (pm_runtime_suspended(dev))
20c51a4c52208f Frank Li                  2022-01-10  435  		pm_runtime_resume(dev);
20c51a4c52208f Frank Li                  2022-01-10  436  
5e0e54ff892487 Peter Chen                2020-09-18  437  	ret = xhci_priv_suspend_quirk(hcd);
5e0e54ff892487 Peter Chen                2020-09-18  438  	if (ret)
5e0e54ff892487 Peter Chen                2020-09-18  439  		return ret;
a1377e5397ab32 Lu Baolu                  2014-11-18  440  	/*
a1377e5397ab32 Lu Baolu                  2014-11-18  441  	 * xhci_suspend() needs `do_wakeup` to know whether host is allowed
9cdda28d3278e4 Peter Chen                2020-09-18  442  	 * to do wakeup during suspend.
a1377e5397ab32 Lu Baolu                  2014-11-18  443  	 */
c13d0d2f5a4806 Justin Chen               2022-08-10  444  	ret = xhci_suspend(xhci, device_may_wakeup(dev));
c13d0d2f5a4806 Justin Chen               2022-08-10  445  	if (ret)
c13d0d2f5a4806 Justin Chen               2022-08-10  446  		return ret;
c13d0d2f5a4806 Justin Chen               2022-08-10  447  
c13d0d2f5a4806 Justin Chen               2022-08-10  448  	if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) {
c13d0d2f5a4806 Justin Chen               2022-08-10  449  		clk_disable_unprepare(xhci->clk);
c13d0d2f5a4806 Justin Chen               2022-08-10  450  		clk_disable_unprepare(xhci->reg_clk);
c13d0d2f5a4806 Justin Chen               2022-08-10  451  	}
c13d0d2f5a4806 Justin Chen               2022-08-10  452  
c13d0d2f5a4806 Justin Chen               2022-08-10  453  	return 0;
57d04eb131ec9d Vikas Sajjan              2013-02-11  454  }
57d04eb131ec9d Vikas Sajjan              2013-02-11  455  
d852ed98f62e0d Arnd Bergmann             2017-04-21  456  static int __maybe_unused xhci_plat_resume(struct device *dev)
57d04eb131ec9d Vikas Sajjan              2013-02-11  457  {
57d04eb131ec9d Vikas Sajjan              2013-02-11  458  	struct usb_hcd	*hcd = dev_get_drvdata(dev);
57d04eb131ec9d Vikas Sajjan              2013-02-11  459  	struct xhci_hcd	*xhci = hcd_to_xhci(hcd);
98c0a3ffa30c4b Yoshihiro Shimoda         2017-04-19  460  	int ret;
57d04eb131ec9d Vikas Sajjan              2013-02-11  461  
c13d0d2f5a4806 Justin Chen               2022-08-10  462  	if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) {
188425eb2da2a0 Sergey Shtylyov           2023-10-19  463  		ret = clk_prepare_enable(xhci->clk);
188425eb2da2a0 Sergey Shtylyov           2023-10-19  464  		if (ret)
188425eb2da2a0 Sergey Shtylyov           2023-10-19  465  			return ret;
188425eb2da2a0 Sergey Shtylyov           2023-10-19  466  
188425eb2da2a0 Sergey Shtylyov           2023-10-19  467  		ret = clk_prepare_enable(xhci->reg_clk);
188425eb2da2a0 Sergey Shtylyov           2023-10-19  468  		if (ret) {
188425eb2da2a0 Sergey Shtylyov           2023-10-19  469  			clk_disable_unprepare(xhci->clk);
188425eb2da2a0 Sergey Shtylyov           2023-10-19  470  			return ret;
188425eb2da2a0 Sergey Shtylyov           2023-10-19  471  		}
c13d0d2f5a4806 Justin Chen               2022-08-10  472  	}
c13d0d2f5a4806 Justin Chen               2022-08-10  473  
98c0a3ffa30c4b Yoshihiro Shimoda         2017-04-19  474  	ret = xhci_priv_resume_quirk(hcd);
98c0a3ffa30c4b Yoshihiro Shimoda         2017-04-19  475  	if (ret)
188425eb2da2a0 Sergey Shtylyov           2023-10-19  476  		goto disable_clks;
98c0a3ffa30c4b Yoshihiro Shimoda         2017-04-19  477  
79112cc3c29f4a Qais Yousef               2020-05-18  478  	ret = xhci_resume(xhci, 0);
79112cc3c29f4a Qais Yousef               2020-05-18  479  	if (ret)
188425eb2da2a0 Sergey Shtylyov           2023-10-19  480  		goto disable_clks;
79112cc3c29f4a Qais Yousef               2020-05-18  481  
79112cc3c29f4a Qais Yousef               2020-05-18  482  	pm_runtime_disable(dev);
79112cc3c29f4a Qais Yousef               2020-05-18  483  	pm_runtime_set_active(dev);
79112cc3c29f4a Qais Yousef               2020-05-18  484  	pm_runtime_enable(dev);
79112cc3c29f4a Qais Yousef               2020-05-18  485  
79112cc3c29f4a Qais Yousef               2020-05-18  486  	return 0;
188425eb2da2a0 Sergey Shtylyov           2023-10-19  487  
188425eb2da2a0 Sergey Shtylyov           2023-10-19  488  disable_clks:
188425eb2da2a0 Sergey Shtylyov           2023-10-19  489  	if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) {
188425eb2da2a0 Sergey Shtylyov           2023-10-19  490  		clk_disable_unprepare(xhci->clk);
188425eb2da2a0 Sergey Shtylyov           2023-10-19  491  		clk_disable_unprepare(xhci->reg_clk);
188425eb2da2a0 Sergey Shtylyov           2023-10-19  492  	}
188425eb2da2a0 Sergey Shtylyov           2023-10-19  493  
188425eb2da2a0 Sergey Shtylyov           2023-10-19 @494  	return ret;
57d04eb131ec9d Vikas Sajjan              2013-02-11  495  }
b0c69b4bace370 Baolin Wang               2017-04-19  496  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2024-10-14 23:02 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-14 23:01 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-15  9:35 [cip:linux-5.10.y-cip-rebase 606/1105] drivers/usb/host/xhci-plat.c:382 xhci_generic_plat_probe() error: we previously assumed 'sysdev' could be null (see line 372) Dan Carpenter

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=202410150653.RDBoPiA3-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@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.