All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janne Grunau <j@jannau.net>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Sven Peter <sven@svenpeter.dev>, oe-kbuild-all@lists.linux.dev
Subject: Re: [asahilinux:bits/170-atcphy 4/16] drivers/phy/apple/atc.c:1589:2-8: preceding lock on line 1578 (fwd)
Date: Wed, 2 Oct 2024 23:03:57 +0200	[thread overview]
Message-ID: <Zv21PWncbEaXQhBj@robin> (raw)
In-Reply-To: <d7cd43ec-ba4d-193d-aa8a-50172f633ea1@inria.fr>

On Wed, Oct 02, 2024 at 01:17:12PM +0200, Julia Lawall wrote:
> Please check whether an unlock is needed on line 1589.

it is. This seems to be an error case we seldomly or never hit. Sven is
rewriting the driver and using guard(mutex)s making this kind of error
less likely. Fixed with an explicit mutex_unlock() before the return.

Thanks for the report,

Janne
> 
> ---------- Forwarded message ----------
> Date: Wed, 2 Oct 2024 19:08:09 +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: [asahilinux:bits/170-atcphy 4/16] drivers/phy/apple/atc.c:1589:2-8:
>     preceding lock on line 1578
> 
> BCC: lkp@intel.com
> CC: oe-kbuild-all@lists.linux.dev
> TO: Sven Peter <sven@svenpeter.dev>
> CC: Janne Grunau <j@jannau.net>
> 
> tree:   https://github.com/AsahiLinux/linux bits/170-atcphy
> head:   819ac8ed6c5777d4b18f0c88fc4a5e55a9ab9fdd
> commit: 4f5b8aa35e68a33a1d20b6ce62014794768af7ad [4/16] WIP: phy: apple: Add Apple Type-C PHY
> :::::: branch date: 8 days ago
> :::::: commit date: 2 weeks ago
> config: arc-randconfig-r052-20241002 (https://download.01.org/0day-ci/archive/20241002/202410021851.sGmBSrDd-lkp@intel.com/config)
> compiler: arc-elf-gcc (GCC) 13.2.0
> 
> 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/202410021851.sGmBSrDd-lkp@intel.com/
> 
> cocci warnings: (new ones prefixed by >>)
> >> drivers/phy/apple/atc.c:1589:2-8: preceding lock on line 1578
>    drivers/phy/apple/atc.c:1589:2-8: preceding lock on line 1584
> 
> vim +1589 drivers/phy/apple/atc.c
> 
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1566
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1567  static int atcphy_usb3_power_on(struct phy *phy)
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1568  {
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1569  	struct apple_atcphy *atcphy = phy_get_drvdata(phy);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1570  	enum atcphy_pipehandler_state state;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1571  	int ret = 0;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1572
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1573  	/*
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1574  	 * Both usb role switch and mux set work will be running concurrently.
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1575  	 * Make sure atcphy_mux_set_work is done bringing up ATCPHY before
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1576  	 * trying to switch dwc3 to the correct PHY.
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1577  	 */
> 4f5b8aa35e68a3 Sven Peter 2022-11-30 @1578  	mutex_lock(&atcphy->lock);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1579  	if (atcphy->mode != atcphy->target_mode) {
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1580  		reinit_completion(&atcphy->atcphy_online_event);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1581  		mutex_unlock(&atcphy->lock);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1582  		wait_for_completion_timeout(&atcphy->atcphy_online_event,
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1583  					msecs_to_jiffies(1000));
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1584  		mutex_lock(&atcphy->lock);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1585  	}
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1586
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1587  	if (atcphy->mode != atcphy->target_mode) {
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1588  		dev_err(atcphy->dev, "ATCPHY did not come up; won't allow dwc3 to come up.\n");
> 4f5b8aa35e68a3 Sven Peter 2022-11-30 @1589  		return -EINVAL;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1590  	}
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1591
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1592  	atcphy->dwc3_online = true;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1593  	state = atcphy_modes[atcphy->mode].pipehandler_state;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1594  	switch (state) {
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1595  	case ATCPHY_PIPEHANDLER_STATE_USB2:
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1596  	case ATCPHY_PIPEHANDLER_STATE_USB3:
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1597  		ret = atcphy_configure_pipehandler(atcphy, state);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1598  		break;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1599
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1600  	case ATCPHY_PIPEHANDLER_STATE_INVALID:
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1601  	default:
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1602  		dev_warn(atcphy->dev, "Invalid state %d in usb3_set_phy\n",
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1603  			 state);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1604  		ret = -EINVAL;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1605  	}
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1606
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1607  	mutex_unlock(&atcphy->lock);
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1608
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1609  	return 0;
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1610  }
> 4f5b8aa35e68a3 Sven Peter 2022-11-30  1611
> 
> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

      reply	other threads:[~2024-10-02 21:03 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-02 11:17 [asahilinux:bits/170-atcphy 4/16] drivers/phy/apple/atc.c:1589:2-8: preceding lock on line 1578 (fwd) Julia Lawall
2024-10-02 21:03 ` Janne Grunau [this message]

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=Zv21PWncbEaXQhBj@robin \
    --to=j@jannau.net \
    --cc=julia.lawall@inria.fr \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=sven@svenpeter.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.