* [asahilinux:bits/170-atcphy 4/16] drivers/phy/apple/atc.c:1589:2-8: preceding lock on line 1578 (fwd)
@ 2024-10-02 11:17 Julia Lawall
2024-10-02 21:03 ` Janne Grunau
0 siblings, 1 reply; 2+ messages in thread
From: Julia Lawall @ 2024-10-02 11:17 UTC (permalink / raw)
To: Sven Peter, Janne Grunau, oe-kbuild-all
Please check whether an unlock is needed on line 1589.
julia
---------- 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
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [asahilinux:bits/170-atcphy 4/16] drivers/phy/apple/atc.c:1589:2-8: preceding lock on line 1578 (fwd)
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
0 siblings, 0 replies; 2+ messages in thread
From: Janne Grunau @ 2024-10-02 21:03 UTC (permalink / raw)
To: Julia Lawall; +Cc: Sven Peter, oe-kbuild-all
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-10-02 21:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 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.