mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Cen Zhang <zzzccc427@gmail.com>,
	marcel@holtmann.org, luiz.dentz@gmail.com,
	padovan@profusion.mobi, johan.hedberg@nokia.com
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org,
	baijiaju1990@gmail.com, jjzuming@gmail.com, zzzccc427@gmail.com
Subject: Re: [PATCH] Bluetooth: MGMT: Serialize power-on with power-off completion
Date: Thu, 15 Oct 2026 03:11:54 +0800	[thread overview]
Message-ID: <202610150313.1x2NMEsK-lkp@intel.com> (raw)
In-Reply-To: <pm-bluetooth-objects-candidate-0063-v7-35a6680c94a332fea155@gmail.com>

Hi Cen,

kernel test robot noticed the following build warnings:

[auto build test WARNING on bluetooth/master]
[also build test WARNING on bluetooth-next/master linus/master v7.3-rc7 next-20261012]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Cen-Zhang/Bluetooth-MGMT-Serialize-power-on-with-power-off-completion/20261014-002814
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master
patch link:    https://lore.kernel.org/r/pm-bluetooth-objects-candidate-0063-v7-35a6680c94a332fea155%40gmail.com
patch subject: [PATCH] Bluetooth: MGMT: Serialize power-on with power-off completion
config: arm64-randconfig-1000-20261014 (https://download.01.org/0day-ci/archive/20261015/202610150313.1x2NMEsK-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 6719b9e31d6a93099612c474eec76d9f41d0275a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261015/202610150313.1x2NMEsK-lkp@intel.com/reproduce)

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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610150313.1x2NMEsK-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/bluetooth/mgmt.c:1415:2: warning: mutex 'hdev->req_lock' is not held on every path through here [-Wthread-safety-analysis]
    1415 |         hci_dev_lock(hdev);
         |         ^
   include/net/bluetooth/hci_core.h:1752:26: note: expanded from macro 'hci_dev_lock'
    1752 | #define hci_dev_lock(d)         mutex_lock(&d->lock)
         |                                 ^
   include/linux/mutex.h:193:26: note: expanded from macro 'mutex_lock'
     193 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
         |                          ^
   net/bluetooth/mgmt.c:1413:3: note: mutex acquired here
    1413 |                 hci_req_sync_lock(hdev);
         |                 ^
   include/net/bluetooth/hci_sync.h:15:35: note: expanded from macro 'hci_req_sync_lock'
      15 | #define hci_req_sync_lock(hdev)   mutex_lock(&hdev->req_lock)
         |                                   ^
   include/linux/mutex.h:193:26: note: expanded from macro 'mutex_lock'
     193 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
         |                          ^
>> net/bluetooth/mgmt.c:1459:3: warning: releasing mutex 'hdev->req_lock' that was not held [-Wthread-safety-analysis]
    1459 |                 hci_req_sync_unlock(hdev);
         |                 ^
   include/net/bluetooth/hci_sync.h:16:35: note: expanded from macro 'hci_req_sync_unlock'
      16 | #define hci_req_sync_unlock(hdev) mutex_unlock(&hdev->req_lock)
         |                                   ^
   2 warnings generated.


vim +1415 net/bluetooth/mgmt.c

8b064a3ad377c01 Johan Hedberg          2014-02-24  1394  
bdb6d97154b7b7e Johan Hedberg          2012-02-28  1395  static int set_powered(struct sock *sk, struct hci_dev *hdev, void *data,
bdb6d97154b7b7e Johan Hedberg          2012-02-28  1396  		       u16 len)
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1397  {
650f726d16a3f25 Vinicius Costa Gomes   2012-02-02  1398  	struct mgmt_mode *cp = data;
3b0602cd01a5711 Johan Hedberg          2015-03-06  1399  	struct mgmt_pending_cmd *cmd;
4b34ee782164fba Johan Hedberg          2012-02-21  1400  	int err;
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1401  
181d695352305cc Marcel Holtmann        2020-05-06  1402  	bt_dev_dbg(hdev, "sock %p", sk);
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1403  
a7e80f25ae2296d Johan Hedberg          2013-01-09  1404  	if (cp->val != 0x00 && cp->val != 0x01)
a69e8375a134eb7 Johan Hedberg          2015-03-06  1405  		return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED,
a7e80f25ae2296d Johan Hedberg          2013-01-09  1406  				       MGMT_STATUS_INVALID_PARAMS);
a7e80f25ae2296d Johan Hedberg          2013-01-09  1407  
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1408  	/*
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1409  	 * Wait for the previous power-off completion before publishing a
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1410  	 * new command that could reuse its freed pending-command address.
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1411  	 */
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1412  	if (cp->val)
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1413  		hci_req_sync_lock(hdev);
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1414  
09fd0de5bd8f8ef Gustavo Padovan        2011-06-17 @1415  	hci_dev_lock(hdev);
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1416  
b14202aff5acba3 Jonas Dreßler          2024-01-07  1417  	if (!cp->val) {
b14202aff5acba3 Jonas Dreßler          2024-01-07  1418  		if (hci_dev_test_flag(hdev, HCI_POWERING_DOWN)) {
b14202aff5acba3 Jonas Dreßler          2024-01-07  1419  			err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED,
b14202aff5acba3 Jonas Dreßler          2024-01-07  1420  					      MGMT_STATUS_BUSY);
b14202aff5acba3 Jonas Dreßler          2024-01-07  1421  			goto failed;
b14202aff5acba3 Jonas Dreßler          2024-01-07  1422  		}
b14202aff5acba3 Jonas Dreßler          2024-01-07  1423  	}
b14202aff5acba3 Jonas Dreßler          2024-01-07  1424  
333ae95d054519f Johan Hedberg          2015-03-17  1425  	if (pending_find(MGMT_OP_SET_POWERED, hdev)) {
a69e8375a134eb7 Johan Hedberg          2015-03-06  1426  		err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED,
87b95ba64efcfcf Johan Hedberg          2013-09-25  1427  				      MGMT_STATUS_BUSY);
87b95ba64efcfcf Johan Hedberg          2013-09-25  1428  		goto failed;
87b95ba64efcfcf Johan Hedberg          2013-09-25  1429  	}
87b95ba64efcfcf Johan Hedberg          2013-09-25  1430  
4b34ee782164fba Johan Hedberg          2012-02-21  1431  	if (!!cp->val == hdev_is_powered(hdev)) {
69ab39ea5da03e6 Johan Hedberg          2011-12-15  1432  		err = send_settings_rsp(sk, MGMT_OP_SET_POWERED, hdev);
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1433  		goto failed;
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1434  	}
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1435  
275f3f64870245b Brian Gix              2022-03-01  1436  	cmd = mgmt_pending_add(sk, MGMT_OP_SET_POWERED, hdev, data, len);
366a033698266c3 Johan Hedberg          2011-02-19  1437  	if (!cmd) {
366a033698266c3 Johan Hedberg          2011-02-19  1438  		err = -ENOMEM;
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1439  		goto failed;
366a033698266c3 Johan Hedberg          2011-02-19  1440  	}
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1441  
f419863588217f7 Archie Pusaka          2023-04-20  1442  	/* Cancel potentially blocking sync operation before power off */
d883a4669a1def6 Luiz Augusto von Dentz 2023-04-21  1443  	if (cp->val == 0x00) {
63298d6e752fc0e Luiz Augusto von Dentz 2024-01-09  1444  		hci_cmd_sync_cancel_sync(hdev, -EHOSTDOWN);
cf75ad8b41d2aa0 Luiz Augusto von Dentz 2021-10-27  1445  		err = hci_cmd_sync_queue(hdev, set_powered_sync, cmd,
cf75ad8b41d2aa0 Luiz Augusto von Dentz 2021-10-27  1446  					 mgmt_set_powered_complete);
d883a4669a1def6 Luiz Augusto von Dentz 2023-04-21  1447  	} else {
d883a4669a1def6 Luiz Augusto von Dentz 2023-04-21  1448  		/* Use hci_cmd_sync_submit since hdev might not be running */
d883a4669a1def6 Luiz Augusto von Dentz 2023-04-21  1449  		err = hci_cmd_sync_submit(hdev, set_powered_sync, cmd,
d883a4669a1def6 Luiz Augusto von Dentz 2023-04-21  1450  					  mgmt_set_powered_complete);
d883a4669a1def6 Luiz Augusto von Dentz 2023-04-21  1451  	}
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1452  
275f3f64870245b Brian Gix              2022-03-01  1453  	if (err < 0)
275f3f64870245b Brian Gix              2022-03-01  1454  		mgmt_pending_remove(cmd);
275f3f64870245b Brian Gix              2022-03-01  1455  
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1456  failed:
09fd0de5bd8f8ef Gustavo Padovan        2011-06-17  1457  	hci_dev_unlock(hdev);
0ec18e0eaccffd5 Cen Zhang              2026-10-14  1458  	if (cp->val)
0ec18e0eaccffd5 Cen Zhang              2026-10-14 @1459  		hci_req_sync_unlock(hdev);
366a033698266c3 Johan Hedberg          2011-02-19  1460  	return err;
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1461  }
eec8d2bcc841ae4 Johan Hedberg          2010-12-16  1462  

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

      reply	other threads:[~2026-10-14 19:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 16:28 Cen Zhang
2026-10-14 19:11 ` kernel test robot [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=202610150313.1x2NMEsK-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=baijiaju1990@gmail.com \
    --cc=jjzuming@gmail.com \
    --cc=johan.hedberg@nokia.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=luiz.dentz@gmail.com \
    --cc=marcel@holtmann.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=padovan@profusion.mobi \
    --cc=zzzccc427@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®