Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [bvanassche:locking 11/12] net/bluetooth/l2cap_core.c:1663:4: warning: calling function 'l2cap_chan_ready' requires holding mutex 'chan->conn->lock' exclusively
@ 2026-10-23 22:28 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-23 22:28 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: llvm, oe-kbuild-all

tree:   https://github.com/bvanassche/linux locking
head:   e794b69f24da7abb1e5a86052eefaac62f85dcc2
commit: f77da254e15dda2d0cb49a19ca6ee67ef304c1fe [11/12] locking: Call lockdep_assert_held() from __assume_ctx_lock()
config: loongarch-randconfig-2000-20261023 (https://download.01.org/0day-ci/archive/20261024/202610240034.EOfSkpzZ-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project a808f8ea7fdc61ead417bfe55e8ef5f728776aeb)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261024/202610240034.EOfSkpzZ-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/202610240034.EOfSkpzZ-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/bluetooth/l2cap_core.c:1663:4: warning: calling function 'l2cap_chan_ready' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1663 |                         l2cap_chan_ready(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:1663:4: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:1678:5: warning: calling function '__l2cap_chan_close' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1678 |                                 __l2cap_chan_close(chan, ECONNRESET);
         |                                 ^
   net/bluetooth/l2cap_core.c:1678:5: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:1684:5: warning: calling function 'l2cap_start_connection' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1684 |                                 l2cap_start_connection(chan);
         |                                 ^
   net/bluetooth/l2cap_core.c:1684:5: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:1686:5: warning: calling function '__l2cap_chan_close' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1686 |                                 __l2cap_chan_close(chan, ECONNREFUSED);
         |                                 ^
   net/bluetooth/l2cap_core.c:1686:5: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:1781:4: warning: calling function 'l2cap_le_start' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1781 |                         l2cap_le_start(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:1781:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:1784:5: warning: calling function 'l2cap_chan_ready' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1784 |                                 l2cap_chan_ready(chan);
         |                                 ^
   net/bluetooth/l2cap_core.c:1784:5: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:1786:4: warning: calling function 'l2cap_do_start' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1786 |                         l2cap_do_start(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:1786:4: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:1937:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    1937 |                 l2cap_chan_del(chan, err);
         |                 ^
   net/bluetooth/l2cap_core.c:1937:3: note: found near match 'hcon->l2cap_data->lock'
>> net/bluetooth/l2cap_core.c:4071:11: warning: calling function 'l2cap_chan_try_sibling_lock' requires holding mutex 'data->locked_chan->lock' exclusively [-Wthread-safety-analysis]
    4071 |         locked = l2cap_chan_try_sibling_lock(chan, rsp->locked_chan);
         |                  ^
>> net/bluetooth/l2cap_core.c:4071:11: warning: calling function 'l2cap_chan_try_sibling_lock' requires holding mutex 'data->locked_chan->conn->lock' exclusively [-Wthread-safety-analysis]
>> net/bluetooth/l2cap_core.c:4093:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->lock' exclusively [-Wthread-safety-analysis]
    4093 |                 l2cap_chan_del(chan, ECONNRESET);
         |                 ^
   net/bluetooth/l2cap_core.c:4093:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-analysis]
>> net/bluetooth/l2cap_core.c:4282:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_chan_create().conn->lock' exclusively [-Wthread-safety-precise]
    4282 |                 l2cap_chan_del(chan, 0);
         |                 ^
   net/bluetooth/l2cap_core.c:4282:3: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:4515:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_chan_hold_unless_zero(chan).conn->lock' exclusively [-Wthread-safety-precise]
    4515 |                 l2cap_chan_del(chan, ECONNREFUSED);
         |                 ^
   net/bluetooth/l2cap_core.c:4515:3: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:4651:5: warning: calling function 'l2cap_chan_ready' requires holding mutex 'l2cap_get_chan_by_scid(conn, dcid).conn->lock' exclusively [-Wthread-safety-precise]
    4651 |                                 l2cap_chan_ready(chan);
         |                                 ^
   net/bluetooth/l2cap_core.c:4651:5: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:4797:4: warning: calling function 'l2cap_chan_ready' requires holding mutex 'l2cap_get_chan_by_scid(conn, scid).conn->lock' exclusively [-Wthread-safety-precise]
    4797 |                         l2cap_chan_ready(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:4797:4: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:4840:2: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_get_chan_by_scid(conn, dcid).conn->lock' exclusively [-Wthread-safety-precise]
    4840 |         l2cap_chan_del(chan, ECONNRESET);
         |         ^
   net/bluetooth/l2cap_core.c:4840:2: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:4882:2: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_get_chan_by_scid(conn, scid).conn->lock' exclusively [-Wthread-safety-precise]
    4882 |         l2cap_chan_del(chan, 0);
         |         ^
   net/bluetooth/l2cap_core.c:4882:2: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:5102:3: warning: calling function 'l2cap_chan_ready' requires holding mutex 'l2cap_chan_hold_unless_zero(chan).conn->lock' exclusively [-Wthread-safety-precise]
    5102 |                 l2cap_chan_ready(chan);
         |                 ^
   net/bluetooth/l2cap_core.c:5102:3: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5111:4: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_chan_hold_unless_zero(chan).conn->lock' exclusively [-Wthread-safety-precise]
    5111 |                         l2cap_chan_del(chan, ECONNREFUSED);
         |                         ^
   net/bluetooth/l2cap_core.c:5111:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5126:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_chan_hold_unless_zero(chan).conn->lock' exclusively [-Wthread-safety-precise]
    5126 |                 l2cap_chan_del(chan, ECONNREFUSED);
         |                 ^
   net/bluetooth/l2cap_core.c:5126:3: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:5339:3: warning: calling function 'l2cap_chan_ready' requires holding mutex 'l2cap_new_connection(conn, l2cap_global_chan_by_psm(BT_LISTEN, psm, conn->hcon->src, conn->hcon->dst, 128)).conn->lock' exclusively [-Wthread-safety-precise]
    5339 |                 l2cap_chan_ready(chan);
         |                 ^
   net/bluetooth/l2cap_core.c:5339:3: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5573:4: warning: calling function 'l2cap_chan_ready' requires holding mutex 'l2cap_new_connection(conn, l2cap_global_chan_by_psm(BT_LISTEN, psm, conn->hcon->src, conn->hcon->dst, 128)).conn->lock' exclusively [-Wthread-safety-precise]
    5573 |                         l2cap_chan_ready(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:5573:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5636:4: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5636 |                         l2cap_chan_del(chan, ECONNREFUSED);
         |                         ^
   net/bluetooth/l2cap_core.c:5636:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5657:4: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5657 |                         l2cap_chan_del(chan, ECONNREFUSED);
         |                         ^
   net/bluetooth/l2cap_core.c:5657:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5689:5: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5689 |                                 l2cap_chan_del(chan, ECONNREFUSED);
         |                                 ^
   net/bluetooth/l2cap_core.c:5689:5: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5704:4: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5704 |                         l2cap_chan_del(chan, ECONNREFUSED);
         |                         ^
   net/bluetooth/l2cap_core.c:5704:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5710:5: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5710 |                                 l2cap_chan_del(chan, ECONNREFUSED);
         |                                 ^
   net/bluetooth/l2cap_core.c:5710:5: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5719:4: warning: calling function 'l2cap_chan_ready' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5719 |                         l2cap_chan_ready(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:5719:4: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5863:3: warning: calling function 'l2cap_chan_del' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    5863 |                 l2cap_chan_del(chan, ECONNRESET);
         |                 ^
   net/bluetooth/l2cap_core.c:5863:3: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:5893:2: warning: calling function 'l2cap_chan_del' requires holding mutex 'l2cap_chan_hold_unless_zero(chan).conn->lock' exclusively [-Wthread-safety-precise]
    5893 |         l2cap_chan_del(chan, ECONNREFUSED);
         |         ^
   net/bluetooth/l2cap_core.c:5893:2: note: found near match 'conn->lock'
>> net/bluetooth/l2cap_core.c:7297:3: warning: calling function 'l2cap_chan_ready' requires holding mutex 'l2cap_get_chan_by_scid(conn, cid).conn->lock' exclusively [-Wthread-safety-precise]
    7297 |                 l2cap_chan_ready(chan);
         |                 ^
   net/bluetooth/l2cap_core.c:7297:3: note: found near match 'conn->lock'
   net/bluetooth/l2cap_core.c:7735:4: warning: calling function 'l2cap_do_start' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    7735 |                         l2cap_do_start(chan);
         |                         ^
   net/bluetooth/l2cap_core.c:7735:4: note: found near match 'l2cap_conn_add(hcon).lock'
>> net/bluetooth/l2cap_core.c:7988:4: warning: calling function 'l2cap_check_encryption' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    7988 |                         l2cap_check_encryption(chan, encrypt);
         |                         ^
   net/bluetooth/l2cap_core.c:7988:4: note: found near match 'hcon->l2cap_data->lock'
   net/bluetooth/l2cap_core.c:7995:5: warning: calling function 'l2cap_start_connection' requires holding mutex 'chan->conn->lock' exclusively [-Wthread-safety-precise]
    7995 |                                 l2cap_start_connection(chan);
         |                                 ^
   net/bluetooth/l2cap_core.c:7995:5: note: found near match 'hcon->l2cap_data->lock'
   35 warnings generated.


vim +1663 net/bluetooth/l2cap_core.c

22121fc9152ca8f net/bluetooth/l2cap.c      Gustavo Padovan        2009-07-23  1648  
^1da177e4c3f415 net/bluetooth/l2cap.c      Linus Torvalds         2005-04-16  1649  /* ---- L2CAP connections ---- */
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1650  static void l2cap_conn_start(struct l2cap_conn *conn)
889dfdde79e27e0 net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29  1651  	__must_hold(&conn->lock)
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1652  {
3df91ea20e74434 net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-21  1653  	struct l2cap_chan *chan, *tmp;
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1654  
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1655  	BT_DBG("conn %p", conn);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1656  
3df91ea20e74434 net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-21  1657  	list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1658  		l2cap_chan_lock(chan);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1659  
889dfdde79e27e0 net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29  1660  		lockdep_assert_held(&chan->conn->lock);
889dfdde79e27e0 net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29  1661  
715ec005cd10c5d net/bluetooth/l2cap_core.c Gustavo Padovan        2011-05-02  1662  		if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
aeaeb4bbca520b8 net/bluetooth/l2cap_core.c Johan Hedberg          2014-09-10 @1663  			l2cap_chan_ready(chan);
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1664  			l2cap_chan_unlock(chan);
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1665  			continue;
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1666  		}
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1667  
89bc500e41fc5b4 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-03  1668  		if (chan->state == BT_CONNECT) {
e7cafc45258c852 net/bluetooth/l2cap_core.c Johan Hedberg          2014-07-17  1669  			if (!l2cap_chan_check_security(chan, true) ||
b44500351845e4f net/bluetooth/l2cap_core.c Gustavo Padovan        2011-04-12  1670  			    !__l2cap_no_conn_pending(chan)) {
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1671  				l2cap_chan_unlock(chan);
47731de789749c9 net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-09  1672  				continue;
47731de789749c9 net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-09  1673  			}
47731de789749c9 net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-09  1674  
c1360a1cf35117d net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-10  1675  			if (!l2cap_mode_supported(chan->mode, conn->feat_mask)
c1360a1cf35117d net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-10  1676  			    && test_bit(CONF_STATE2_DEVICE,
c1360a1cf35117d net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-10  1677  					&chan->conf_state)) {
608e0b7a675b2af net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29 @1678  				__l2cap_chan_close(chan, ECONNRESET);
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1679  				l2cap_chan_unlock(chan);
cf6c2c0b9f47ee3 net/bluetooth/l2cap.c      Gustavo Padovan        2010-06-07  1680  				continue;
cf6c2c0b9f47ee3 net/bluetooth/l2cap.c      Gustavo Padovan        2010-06-07  1681  			}
cf6c2c0b9f47ee3 net/bluetooth/l2cap.c      Gustavo Padovan        2010-06-07  1682  
7af8479d9eb4319 net/bluetooth/l2cap_core.c Luiz Augusto von Dentz 2025-05-07  1683  			if (l2cap_check_enc_key_size(conn->hcon, chan))
93c3e8f5c9a0e4d net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-09-27 @1684  				l2cap_start_connection(chan);
693cd8ce3f88252 net/bluetooth/l2cap_core.c Marcel Holtmann        2019-06-22  1685  			else
608e0b7a675b2af net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29  1686  				__l2cap_chan_close(chan, ECONNREFUSED);
47731de789749c9 net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-09  1687  
89bc500e41fc5b4 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-03  1688  		} else if (chan->state == BT_CONNECT2) {
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1689  			struct l2cap_conn_rsp rsp;
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1690  			char buf[128];
fe4128e0aabc3c7 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-04-13  1691  			rsp.scid = cpu_to_le16(chan->dcid);
fe4128e0aabc3c7 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-04-13  1692  			rsp.dcid = cpu_to_le16(chan->scid);
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1693  
e7cafc45258c852 net/bluetooth/l2cap_core.c Johan Hedberg          2014-07-17  1694  			if (l2cap_chan_check_security(chan, false)) {
bdc257830760a78 net/bluetooth/l2cap_core.c Marcel Holtmann        2013-10-14  1695  				if (test_bit(FLAG_DEFER_SETUP, &chan->flags)) {
dcf4adbfdc7ad14 net/bluetooth/l2cap_core.c Joe Perches            2014-03-12  1696  					rsp.result = cpu_to_le16(L2CAP_CR_PEND);
dcf4adbfdc7ad14 net/bluetooth/l2cap_core.c Joe Perches            2014-03-12  1697  					rsp.status = cpu_to_le16(L2CAP_CS_AUTHOR_PEND);
2dc4e5105f012bd net/bluetooth/l2cap_core.c Gustavo Padovan        2012-10-12  1698  					chan->ops->defer(chan);
f66dc81f44d918e net/bluetooth/l2cap.c      Marcel Holtmann        2009-01-15  1699  
f66dc81f44d918e net/bluetooth/l2cap.c      Marcel Holtmann        2009-01-15  1700  				} else {
acdcabf532908fb net/bluetooth/l2cap_core.c Gustavo Padovan        2013-10-21  1701  					l2cap_state_change(chan, BT_CONFIG);
dcf4adbfdc7ad14 net/bluetooth/l2cap_core.c Joe Perches            2014-03-12  1702  					rsp.result = cpu_to_le16(L2CAP_CR_SUCCESS);
dcf4adbfdc7ad14 net/bluetooth/l2cap_core.c Joe Perches            2014-03-12  1703  					rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
f66dc81f44d918e net/bluetooth/l2cap.c      Marcel Holtmann        2009-01-15  1704  				}
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1705  			} else {
dcf4adbfdc7ad14 net/bluetooth/l2cap_core.c Joe Perches            2014-03-12  1706  				rsp.result = cpu_to_le16(L2CAP_CR_PEND);
dcf4adbfdc7ad14 net/bluetooth/l2cap_core.c Joe Perches            2014-03-12  1707  				rsp.status = cpu_to_le16(L2CAP_CS_AUTHEN_PEND);
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1708  			}
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1709  
fc7f8a7ed454385 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-03-25  1710  			l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
fc7f8a7ed454385 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-03-25  1711  				       sizeof(rsp), &rsp);
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1712  
c1360a1cf35117d net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-10  1713  			if (test_bit(CONF_REQ_SENT, &chan->conf_state) ||
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1714  			    rsp.result != L2CAP_CR_SUCCESS) {
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1715  				l2cap_chan_unlock(chan);
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1716  				continue;
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1717  			}
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1718  
c1360a1cf35117d net/bluetooth/l2cap_core.c Gustavo Padovan        2011-06-10  1719  			set_bit(CONF_REQ_SENT, &chan->conf_state);
e9aeb2ddd441f0c net/bluetooth/l2cap.c      Gustavo Padovan        2010-07-08  1720  			l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
e860d2c904d1a9f net/bluetooth/l2cap_core.c Ben Seri               2017-09-09  1721  				       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
73ffa904b78287f net/bluetooth/l2cap_core.c Gustavo Padovan        2011-03-25  1722  			chan->num_conf_req++;
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1723  		}
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1724  
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1725  		l2cap_chan_unlock(chan);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1726  	}
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1727  }
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1728  
b62f328b8f20abe net/bluetooth/l2cap_core.c Ville Tervo            2011-02-10  1729  static void l2cap_le_conn_ready(struct l2cap_conn *conn)
b62f328b8f20abe net/bluetooth/l2cap_core.c Ville Tervo            2011-02-10  1730  {
cc8dba2bc302442 net/bluetooth/l2cap_core.c Marcel Holtmann        2013-10-18  1731  	struct hci_conn *hcon = conn->hcon;
dcc36c16c2f1c98 net/bluetooth/l2cap_core.c Johan Hedberg          2014-07-09  1732  	struct hci_dev *hdev = hcon->hdev;
b62f328b8f20abe net/bluetooth/l2cap_core.c Ville Tervo            2011-02-10  1733  
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1734  	BT_DBG("%s conn %p", hdev->name, conn);
b62f328b8f20abe net/bluetooth/l2cap_core.c Ville Tervo            2011-02-10  1735  
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1736  	/* For outgoing pairing which doesn't necessarily have an
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1737  	 * associated socket (e.g. mgmt_pair_device).
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1738  	 */
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1739  	if (hcon->out)
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1740  		smp_conn_security(hcon, hcon->pending_sec_level);
cc8dba2bc302442 net/bluetooth/l2cap_core.c Marcel Holtmann        2013-10-18  1741  
74be523ce6bed05 net/bluetooth/l2cap_core.c Archie Pusaka          2021-06-04  1742  	/* For LE peripheral connections, make sure the connection interval
5153ceb9e622f4e net/bluetooth/l2cap_core.c Bhaskar Chowdhury      2021-03-25  1743  	 * is in the range of the minimum and maximum interval that has
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1744  	 * been configured for this connection. If not, then trigger
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1745  	 * the connection update procedure.
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1746  	 */
40bef302f6323d1 net/bluetooth/l2cap_core.c Johan Hedberg          2014-07-16  1747  	if (hcon->role == HCI_ROLE_SLAVE &&
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1748  	    (hcon->le_conn_interval < hcon->le_conn_min_interval ||
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1749  	     hcon->le_conn_interval > hcon->le_conn_max_interval)) {
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1750  		struct l2cap_conn_param_update_req req;
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1751  
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1752  		req.min = cpu_to_le16(hcon->le_conn_min_interval);
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1753  		req.max = cpu_to_le16(hcon->le_conn_max_interval);
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1754  		req.latency = cpu_to_le16(hcon->le_conn_latency);
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1755  		req.to_multiplier = cpu_to_le16(hcon->le_supv_timeout);
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1756  
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1757  		l2cap_send_cmd(conn, l2cap_get_ident(conn),
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1758  			       L2CAP_CONN_PARAM_UPDATE_REQ, sizeof(req), &req);
80afeb6cec3739d net/bluetooth/l2cap_core.c Marcel Holtmann        2014-06-23  1759  	}
b62f328b8f20abe net/bluetooth/l2cap_core.c Ville Tervo            2011-02-10  1760  }
b62f328b8f20abe net/bluetooth/l2cap_core.c Ville Tervo            2011-02-10  1761  
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1762  static void l2cap_conn_ready(struct l2cap_conn *conn)
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1763  {
48454079c2d4b9e net/bluetooth/l2cap_core.c Gustavo Padovan        2011-03-25  1764  	struct l2cap_chan *chan;
cc110922da7e902 net/bluetooth/l2cap_core.c Vinicius Costa Gomes   2012-08-23  1765  	struct hci_conn *hcon = conn->hcon;
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1766  
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1767  	BT_DBG("conn %p", conn);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1768  
aeaeb4bbca520b8 net/bluetooth/l2cap_core.c Johan Hedberg          2014-09-10  1769  	if (hcon->type == ACL_LINK)
aeaeb4bbca520b8 net/bluetooth/l2cap_core.c Johan Hedberg          2014-09-10  1770  		l2cap_request_info(conn);
aeaeb4bbca520b8 net/bluetooth/l2cap_core.c Johan Hedberg          2014-09-10  1771  
ab4eedb790cae44 net/bluetooth/l2cap_core.c Luiz Augusto von Dentz 2025-02-06  1772  	mutex_lock(&conn->lock);
e760ec12134d573 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-07  1773  
3df91ea20e74434 net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-21  1774  	list_for_each_entry(chan, &conn->chan_l, list) {
baa7e1fa6d28704 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-03-31  1775  
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1776  		l2cap_chan_lock(chan);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1777  
889dfdde79e27e0 net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29  1778  		lockdep_assert_held(&chan->conn->lock);
889dfdde79e27e0 net/bluetooth/l2cap_core.c Pauli Virtanen         2026-08-29  1779  
cc110922da7e902 net/bluetooth/l2cap_core.c Vinicius Costa Gomes   2012-08-23  1780  		if (hcon->type == LE_LINK) {
f1496dee9cbde2a net/bluetooth/l2cap_core.c Johan Hedberg          2013-05-13 @1781  			l2cap_le_start(chan);
6312845169e8719 net/bluetooth/l2cap_core.c Vinicius Costa Gomes   2011-06-17  1782  		} else if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
aeaeb4bbca520b8 net/bluetooth/l2cap_core.c Johan Hedberg          2014-09-10  1783  			if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)
74e7574066e020d net/bluetooth/l2cap_core.c Gustavo Padovan        2013-10-15  1784  				l2cap_chan_ready(chan);
1c244f79c0d6abf net/bluetooth/l2cap_core.c Gustavo Padovan        2012-12-07  1785  		} else if (chan->state == BT_CONNECT) {
fc7f8a7ed454385 net/bluetooth/l2cap_core.c Gustavo Padovan        2011-03-25 @1786  			l2cap_do_start(chan);
1c244f79c0d6abf net/bluetooth/l2cap_core.c Gustavo Padovan        2012-12-07  1787  		}
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1788  
6be3655552ee49a net/bluetooth/l2cap_core.c Andrei Emeltchenko     2012-02-22  1789  		l2cap_chan_unlock(chan);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1790  	}
79d554a6976a295 net/bluetooth/l2cap.c      Marcel Holtmann        2008-07-14  1791  
ab4eedb790cae44 net/bluetooth/l2cap_core.c Luiz Augusto von Dentz 2025-02-06  1792  	mutex_unlock(&conn->lock);
61a939c68ee033d net/bluetooth/l2cap_core.c Johan Hedberg          2014-01-17  1793  
79a0572736ad4b9 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-08  1794  	if (hcon->type == LE_LINK)
79a0572736ad4b9 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-08  1795  		l2cap_le_conn_ready(conn);
79a0572736ad4b9 net/bluetooth/l2cap_core.c Johan Hedberg          2014-08-08  1796  
61a939c68ee033d net/bluetooth/l2cap_core.c Johan Hedberg          2014-01-17  1797  	queue_work(hcon->hdev->workqueue, &conn->pending_rx_work);
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1798  }
4e8402a3f884427 net/bluetooth/l2cap.c      Marcel Holtmann        2007-10-20  1799  

:::::: The code at line 1663 was first introduced by commit
:::::: aeaeb4bbca520b862d3b3e7cd74c23042815a160 Bluetooth: Fix L2CAP information request handling for fixed channels

:::::: TO: Johan Hedberg <johan.hedberg@intel.com>
:::::: CC: Marcel Holtmann <marcel@holtmann.org>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-23 22:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-23 22:28 [bvanassche:locking 11/12] net/bluetooth/l2cap_core.c:1663:4: warning: calling function 'l2cap_chan_ready' requires holding mutex 'chan->conn->lock' exclusively kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox