Re: [PATCH] Bluetooth: hci_sync: add conditional locking annotations

Nathan Chancellor <[email protected]>
Newsgroups org.kernel.vger.linux-bluetooth
Message-ID <20260811204327.GA1477601@ax162>
On Fri, Jul 31, 2026 at 03:18:45PM -0700, Nathan Chancellor wrote:
> On Sat, Jul 25, 2026 at 01:02:36PM +0300, Pauli Virtanen wrote:
> > Add context analysis annotations to functions doing conditional locking,
> > to suppress analysis warnings.
> > 
> > Fixes: a3ad01d51d4b ("Bluetooth: hci_sync: Fix advertising data UAFs")
> > Signed-off-by: Pauli Virtanen <[email protected]>
> 
> Tested-by: Nathan Chancellor <[email protected]> # build
> 
> It would be nice if this could be applied, as this breaks recent clang
> builds due to context analysis being on by default and -Werror enabled
> by default with many configurations now:
> 
>   https://github.com/ClangBuiltLinux/continuous-integration2/actions/runs/30660246388

Ping? Our builds with clang-23 and clang-24 continue to be broken on
-next because of this.

  https://github.com/ClangBuiltLinux/continuous-integration2/actions/runs/31525203557
  https://github.com/ClangBuiltLinux/continuous-integration2/actions/runs/31526633508

> > ---
> >  net/bluetooth/hci_sync.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
> > index d5554fbf3129..f5545f270f09 100644
> > --- a/net/bluetooth/hci_sync.c
> > +++ b/net/bluetooth/hci_sync.c
> > @@ -1255,6 +1255,7 @@ hci_set_ext_adv_params_sync(struct hci_dev *hdev, u8 instance,
> >  }
> >  
> >  static int hci_set_ext_adv_data_sync(struct hci_dev *hdev, u8 instance)
> > +	__context_unsafe(/* conditional locking */)
> >  {
> >  	DEFINE_FLEX(struct hci_cp_le_set_ext_adv_data, pdu, data, length,
> >  		    HCI_MAX_EXT_AD_LENGTH);
> > @@ -1343,6 +1344,7 @@ int hci_update_adv_data_sync(struct hci_dev *hdev, u8 instance)
> >  }
> >  
> >  int hci_setup_ext_adv_instance_sync(struct hci_dev *hdev, u8 instance)
> > +	__context_unsafe(/* conditional locking */)
> >  {
> >  	struct hci_cp_le_set_ext_adv_params cp;
> >  	struct hci_rp_le_set_ext_adv_params rp;
> > @@ -1499,6 +1501,7 @@ int hci_setup_ext_adv_instance_sync(struct hci_dev *hdev, u8 instance)
> >  }
> >  
> >  static int hci_set_ext_scan_rsp_data_sync(struct hci_dev *hdev, u8 instance)
> > +	__context_unsafe(/* conditional locking */)
> >  {
> >  	DEFINE_FLEX(struct hci_cp_le_set_ext_scan_rsp_data, pdu, data, length,
> >  		    HCI_MAX_EXT_AD_LENGTH);
> > @@ -1552,6 +1555,7 @@ static int hci_set_ext_scan_rsp_data_sync(struct hci_dev *hdev, u8 instance)
> >  }
> >  
> >  static int __hci_set_scan_rsp_data_sync(struct hci_dev *hdev, u8 instance)
> > +	__context_unsafe(/* conditional locking */)
> >  {
> >  	struct hci_cp_le_set_scan_rsp_data cp;
> >  	u8 len;
> > @@ -1693,6 +1697,7 @@ static int hci_set_per_adv_params_sync(struct hci_dev *hdev, u8 instance,
> >  }
> >  
> >  static int hci_set_per_adv_data_sync(struct hci_dev *hdev, u8 instance)
> > +	__context_unsafe(/* conditional locking */)
> >  {
> >  	DEFINE_FLEX(struct hci_cp_le_set_per_adv_data, pdu, data, length,
> >  		    HCI_MAX_PER_AD_LENGTH);
> > -- 
> > 2.55.0
> > 

-- 
Cheers,
Nathan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.