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
prev parent 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.