From: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>
To: "Marcel Holtmann" <marcel@holtmann.org>,
"Luiz Augusto von Dentz" <luiz.dentz@gmail.com>,
"Kees Cook" <kees@kernel.org>,
"Chengfeng Ye" <nicoyip.dev@gmail.com>,
"Ali Ahmet Memiş" <aliamemis@disroot.org>,
"Jakub Kicinski" <kuba@kernel.org>,
"Hyunwoo Kim" <imv4bel@gmail.com>,
"Pengpeng Hou" <pengpeng@iscas.ac.cn>,
"SeungJu Cheon" <suunj1331@gmail.com>,
"Tim Bird" <tim.bird@sony.com>, "Peng Fan" <peng.fan@nxp.com>,
"Breno Leitao" <leitao@debian.org>,
"Juan Perdomo" <jcperdomo100@gmail.com>,
"Safa Karakuş" <safa.karakus@secunnix.com>,
"Zhang Cen" <rollkingzzc@gmail.com>
Cc: linux-kernel@vger.kernel.org,
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,
Siwei Zhang <oss@fourdim.xyz>, Pauli Virtanen <pav@iki.fi>,
linux-bluetooth@vger.kernel.org
Subject: [PATCH] Bluetooth: use assign_bit() where applicable
Date: Sun, 20 Sep 2026 10:26:02 +0800 [thread overview]
Message-ID: <20260920022610.3145618-1-peng.fan@oss.nxp.com> (raw)
From: Peng Fan <peng.fan@nxp.com>
Convert open-coded if/else with set_bit/clear_bit the assign_bit API.
Done with Coccinelle semantic patch:
// set_bit -> clear_bit => assign_bit
@@
expression cond, bit, addr;
@@
-if (cond)
- set_bit(bit, addr);
-else
- clear_bit(bit, addr);
+assign_bit(bit, addr, cond);
@@
expression cond, bit, addr;
@@
-if (cond)
- clear_bit(bit, addr);
-else
- set_bit(bit, addr);
+assign_bit(bit, addr, !cond);
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
net/bluetooth/hci_event.c | 31 +++++++------------------------
net/bluetooth/iso.c | 15 +++------------
net/bluetooth/l2cap_sock.c | 22 ++++++----------------
net/bluetooth/rfcomm/core.c | 6 ++----
net/bluetooth/rfcomm/sock.c | 5 +----
net/bluetooth/sco.c | 10 ++--------
6 files changed, 21 insertions(+), 68 deletions(-)
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 25ddba2f603b..5ac2357e92c9 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -404,10 +404,7 @@ static u8 hci_cc_write_auth_enable(struct hci_dev *hdev, void *data,
if (!rp->status) {
__u8 param = *((__u8 *) sent);
- if (param == AUTH_ENABLED)
- set_bit(HCI_AUTH, &hdev->flags);
- else
- clear_bit(HCI_AUTH, &hdev->flags);
+ assign_bit(HCI_AUTH, &hdev->flags, param == AUTH_ENABLED);
}
if (hci_dev_test_flag(hdev, HCI_MGMT))
@@ -436,10 +433,7 @@ static u8 hci_cc_write_encrypt_mode(struct hci_dev *hdev, void *data,
param = *((__u8 *) sent);
- if (param)
- set_bit(HCI_ENCRYPT, &hdev->flags);
- else
- clear_bit(HCI_ENCRYPT, &hdev->flags);
+ assign_bit(HCI_ENCRYPT, &hdev->flags, param);
return rp->status;
}
@@ -466,15 +460,9 @@ static u8 hci_cc_write_scan_enable(struct hci_dev *hdev, void *data,
goto done;
}
- if (param & SCAN_INQUIRY)
- set_bit(HCI_ISCAN, &hdev->flags);
- else
- clear_bit(HCI_ISCAN, &hdev->flags);
+ assign_bit(HCI_ISCAN, &hdev->flags, param & SCAN_INQUIRY);
- if (param & SCAN_PAGE)
- set_bit(HCI_PSCAN, &hdev->flags);
- else
- clear_bit(HCI_PSCAN, &hdev->flags);
+ assign_bit(HCI_PSCAN, &hdev->flags, param & SCAN_PAGE);
done:
hci_dev_unlock(hdev);
@@ -4614,10 +4602,8 @@ static void hci_mode_change_evt(struct hci_dev *hdev, void *data,
if (!test_and_clear_bit(HCI_CONN_MODE_CHANGE_PEND,
&conn->flags)) {
- if (conn->mode == HCI_CM_ACTIVE)
- set_bit(HCI_CONN_POWER_SAVE, &conn->flags);
- else
- clear_bit(HCI_CONN_POWER_SAVE, &conn->flags);
+ assign_bit(HCI_CONN_POWER_SAVE, &conn->flags,
+ conn->mode == HCI_CM_ACTIVE);
}
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
@@ -4817,10 +4803,7 @@ static void hci_link_key_notify_evt(struct hci_dev *hdev, void *data,
goto unlock;
}
- if (persistent)
- clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags);
- else
- set_bit(HCI_CONN_FLUSH_KEY, &conn->flags);
+ assign_bit(HCI_CONN_FLUSH_KEY, &conn->flags, !persistent);
unlock:
hci_dev_unlock(hdev);
diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c
index eb99653f33f9..cd4e9e3968e6 100644
--- a/net/bluetooth/iso.c
+++ b/net/bluetooth/iso.c
@@ -1935,10 +1935,7 @@ static int iso_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (opt)
- set_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags);
- else
- clear_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags);
+ assign_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags, opt);
break;
case BT_PKT_STATUS:
@@ -1946,10 +1943,7 @@ static int iso_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (opt)
- set_bit(BT_SK_PKT_STATUS, &bt_sk(sk)->flags);
- else
- clear_bit(BT_SK_PKT_STATUS, &bt_sk(sk)->flags);
+ assign_bit(BT_SK_PKT_STATUS, &bt_sk(sk)->flags, opt);
break;
case BT_PKT_SEQNUM:
@@ -1957,10 +1951,7 @@ static int iso_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (opt)
- set_bit(BT_SK_PKT_SEQNUM, &bt_sk(sk)->flags);
- else
- clear_bit(BT_SK_PKT_SEQNUM, &bt_sk(sk)->flags);
+ assign_bit(BT_SK_PKT_SEQNUM, &bt_sk(sk)->flags, opt);
break;
case BT_ISO_QOS:
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index ddd47f42db46..e2f90e92af3a 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -867,15 +867,11 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
if (opt & L2CAP_LM_SECURE)
chan->sec_level = BT_SECURITY_HIGH;
- if (opt & L2CAP_LM_MASTER)
- set_bit(FLAG_ROLE_SWITCH, &chan->flags);
- else
- clear_bit(FLAG_ROLE_SWITCH, &chan->flags);
+ assign_bit(FLAG_ROLE_SWITCH, &chan->flags,
+ opt & L2CAP_LM_MASTER);
- if (opt & L2CAP_LM_RELIABLE)
- set_bit(FLAG_FORCE_RELIABLE, &chan->flags);
- else
- clear_bit(FLAG_FORCE_RELIABLE, &chan->flags);
+ assign_bit(FLAG_FORCE_RELIABLE, &chan->flags,
+ opt & L2CAP_LM_RELIABLE);
break;
default:
@@ -1042,10 +1038,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
}
}
- if (opt)
- set_bit(FLAG_FLUSHABLE, &chan->flags);
- else
- clear_bit(FLAG_FLUSHABLE, &chan->flags);
+ assign_bit(FLAG_FLUSHABLE, &chan->flags, opt);
break;
case BT_POWER:
@@ -1061,10 +1054,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (pwr.force_active)
- set_bit(FLAG_FORCE_ACTIVE, &chan->flags);
- else
- clear_bit(FLAG_FORCE_ACTIVE, &chan->flags);
+ assign_bit(FLAG_FORCE_ACTIVE, &chan->flags, pwr.force_active);
break;
case BT_CHANNEL_POLICY:
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index f7463f092283..54b70d1186ee 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -1684,10 +1684,8 @@ static int rfcomm_recv_msc(struct rfcomm_session *s, int cr, struct sk_buff *skb
return 0;
if (cr) {
- if (msc->v24_sig & RFCOMM_V24_FC && !d->cfc)
- set_bit(RFCOMM_TX_THROTTLED, &d->flags);
- else
- clear_bit(RFCOMM_TX_THROTTLED, &d->flags);
+ assign_bit(RFCOMM_TX_THROTTLED, &d->flags,
+ msc->v24_sig & RFCOMM_V24_FC && !d->cfc);
rfcomm_dlc_lock(d);
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
index e2486bc11cbc..2167ba6f478b 100644
--- a/net/bluetooth/rfcomm/sock.c
+++ b/net/bluetooth/rfcomm/sock.c
@@ -721,10 +721,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (opt)
- set_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags);
- else
- clear_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags);
+ assign_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags, opt);
break;
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index 3d4362a09df4..e19079b9c432 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -992,10 +992,7 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (opt)
- set_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags);
- else
- clear_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags);
+ assign_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags, opt);
break;
case BT_VOICE:
@@ -1035,10 +1032,7 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname,
if (err)
break;
- if (opt)
- set_bit(BT_SK_PKT_STATUS, &bt_sk(sk)->flags);
- else
- clear_bit(BT_SK_PKT_STATUS, &bt_sk(sk)->flags);
+ assign_bit(BT_SK_PKT_STATUS, &bt_sk(sk)->flags, opt);
break;
case BT_CODEC:
--
2.51.0
next reply other threads:[~2026-09-20 2:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-20 2:26 Peng Fan (OSS) [this message]
2026-09-21 14:10 ` patchwork-bot+bluetooth
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=20260920022610.3145618-1-peng.fan@oss.nxp.com \
--to=peng.fan@oss.nxp.com \
--cc=aliamemis@disroot.org \
--cc=imv4bel@gmail.com \
--cc=jcperdomo100@gmail.com \
--cc=kees@kernel.org \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=luiz.von.dentz@intel.com \
--cc=marcel@holtmann.org \
--cc=nicoyip.dev@gmail.com \
--cc=oss@fourdim.xyz \
--cc=pav@iki.fi \
--cc=peng.fan@nxp.com \
--cc=pengpeng@iscas.ac.cn \
--cc=rollkingzzc@gmail.com \
--cc=safa.karakus@secunnix.com \
--cc=suunj1331@gmail.com \
--cc=tim.bird@sony.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®