[PATCH net-next] net: use assign_bit() where applicable

From: Peng Fan (OSS)

Date: Thu Sep 17 2026 - 09:32:33 EST


From: Peng Fan <peng.fan@xxxxxxx>

Convert open-coded if/else with set_bit/clear_bit and their
non-atomic __set_bit/__clear_bit variants to the assign_bit/__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);

// clear_bit -> set_bit => assign_bit

@@
expression cond, bit, addr;
@@

-if (cond)
- clear_bit(bit, addr);
-else
- set_bit(bit, addr);
+assign_bit(bit, addr, !cond);

// __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);

// __clear_bit -> __set_bit => __assign_bit

@@
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@xxxxxxx>
---
drivers/net/can/slcan/slcan-core.c | 5 +----
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 5 +----
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 5 +----
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 18 ++++-----------
drivers/net/ethernet/freescale/enetc/enetc.c | 5 +----
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 10 ++-------
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 7 ++----
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 10 ++-------
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 5 +----
drivers/net/ethernet/intel/ice/ice_ethtool.c | 5 +----
drivers/net/ethernet/intel/ice/ice_txclk.c | 20 ++++++-----------
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 10 ++-------
.../net/ethernet/marvell/octeontx2/af/cn20k/npc.c | 5 +----
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 15 +++----------
.../net/ethernet/marvell/octeontx2/af/rvu_npa.c | 10 ++-------
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 ++---
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 6 ++---
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c | 8 ++-----
.../net/ethernet/pensando/ionic/ionic_ethtool.c | 10 ++-------
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 6 ++---
drivers/net/ethernet/qlogic/qla3xxx.c | 18 +++++----------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c | 5 +----
.../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 6 ++---
.../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 6 ++---
drivers/net/ethernet/wangxun/libwx/wx_ptp.c | 5 +----
drivers/net/phy/mediatek/mtk-phy-lib.c | 26 +++++++---------------
drivers/net/wireless/ath/ath10k/debug.c | 10 ++-------
drivers/net/wireless/ath/ath10k/snoc.c | 6 ++---
drivers/net/wireless/ath/ath11k/htc.c | 5 +----
drivers/net/wireless/ath/ath12k/htc.c | 5 +----
drivers/net/wireless/ath/ath9k/ar9003_calib.c | 5 +----
drivers/net/wireless/ath/ath9k/mci.c | 5 +----
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 5 +----
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 5 +----
drivers/net/wireless/realtek/rtw88/debug.c | 5 +----
drivers/net/wireless/realtek/rtw89/core.c | 5 +----
drivers/net/wireless/realtek/rtw89/mac.c | 10 ++-------
drivers/net/wireless/realtek/rtw89/regd.c | 5 +----
drivers/net/wireless/ti/wlcore/rx.c | 5 +----
39 files changed, 77 insertions(+), 236 deletions(-)

diff --git a/drivers/net/can/slcan/slcan-core.c b/drivers/net/can/slcan/slcan-core.c
index 7439849d5c84..c9414faafe66 100644
--- a/drivers/net/can/slcan/slcan-core.c
+++ b/drivers/net/can/slcan/slcan-core.c
@@ -131,10 +131,7 @@ int slcan_enable_err_rst_on_open(struct net_device *ndev, bool on)
if (netif_running(ndev))
return -EBUSY;

- if (on)
- set_bit(CF_ERR_RST, &sl->cmd_flags);
- else
- clear_bit(CF_ERR_RST, &sl->cmd_flags);
+ assign_bit(CF_ERR_RST, &sl->cmd_flags, on);

return 0;
}
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
index 12770af031eb..c56587384d57 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
@@ -1202,10 +1202,7 @@ static int __xgbe_phy_config_aneg(struct xgbe_prv_data *pdata, bool set_mode)
xgbe_an_restart(pdata);

out:
- if (ret)
- set_bit(XGBE_LINK_ERR, &pdata->dev_state);
- else
- clear_bit(XGBE_LINK_ERR, &pdata->dev_state);
+ assign_bit(XGBE_LINK_ERR, &pdata->dev_state, ret);

mutex_unlock(&pdata->an_mutex);

diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
index 01792f7abf96..42e0fe9248f2 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
@@ -1717,10 +1717,7 @@ int aq_nic_setup_tc_min_rate(struct aq_nic_s *self, const unsigned int tc,
if (tc >= AQ_CFG_TCS_MAX)
return -EINVAL;

- if (min_rate)
- set_bit(tc, &cfg->tc_min_rate_msk);
- else
- clear_bit(tc, &cfg->tc_min_rate_msk);
+ assign_bit(tc, &cfg->tc_min_rate_msk, min_rate);

if (min_rate && min_rate < 20) {
netdev_warn(self->ndev,
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
index b8af508f9c98..b337e61f9c81 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
@@ -207,10 +207,7 @@ void bnx2x_vfop_qctor_prep(struct bnx2x *bp,
*/
__set_bit(BNX2X_Q_FLG_TX_SWITCH, &setup_p->flags);
__set_bit(BNX2X_Q_FLG_TX_SEC, &setup_p->flags);
- if (vf->spoofchk)
- __set_bit(BNX2X_Q_FLG_ANTI_SPOOF, &setup_p->flags);
- else
- __clear_bit(BNX2X_Q_FLG_ANTI_SPOOF, &setup_p->flags);
+ __assign_bit(BNX2X_Q_FLG_ANTI_SPOOF, &setup_p->flags, vf->spoofchk);

/* Setup-op rx parameters */
if (test_bit(BNX2X_Q_TYPE_HAS_RX, &q_type)) {
@@ -2370,12 +2367,8 @@ static int bnx2x_set_pf_tx_switching(struct bnx2x *bp, bool enable)
q_params.cmd = BNX2X_Q_CMD_UPDATE;
__set_bit(BNX2X_Q_UPDATE_TX_SWITCHING_CHNG,
&q_params.params.update.update_flags);
- if (enable)
- __set_bit(BNX2X_Q_UPDATE_TX_SWITCHING,
- &q_params.params.update.update_flags);
- else
- __clear_bit(BNX2X_Q_UPDATE_TX_SWITCHING,
- &q_params.params.update.update_flags);
+ __assign_bit(BNX2X_Q_UPDATE_TX_SWITCHING,
+ &q_params.params.update.update_flags, enable);

/* send the ramrod on all the queues of the PF */
for_each_eth_queue(bp, i) {
@@ -2764,10 +2757,7 @@ static void bnx2x_set_vf_vlan_acceptance(struct bnx2x *bp,

/* need to remove/add the VF's accept_any_vlan bit */
accept_flags = bnx2x_leading_vfq(vf, accept_flags);
- if (accept)
- set_bit(BNX2X_ACCEPT_ANY_VLAN, &accept_flags);
- else
- clear_bit(BNX2X_ACCEPT_ANY_VLAN, &accept_flags);
+ assign_bit(BNX2X_ACCEPT_ANY_VLAN, &accept_flags, accept);

bnx2x_vf_prep_rx_mode(bp, LEADING_IDX, &rx_ramrod, vf,
accept_flags);
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
index 04c49b680709..c6571b5cc842 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -88,10 +88,7 @@ void enetc_set_congestion_mode(struct enetc_ndev_priv *priv, bool enable)

spin_lock(&si->gen_lock);

- if (enable)
- set_bit(ENETC_RXBDR_CM, &priv->flags);
- else
- clear_bit(ENETC_RXBDR_CM, &priv->flags);
+ assign_bit(ENETC_RXBDR_CM, &priv->flags, enable);

for (int i = 0; i < priv->num_rx_rings; i++) {
u32 old_rbmr = enetc_rxbdr_rd(hw, i, ENETC_RBMR);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
index e7318f236315..7b92a3c73ef6 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
@@ -474,10 +474,7 @@ static void hns3_update_limit_promisc_mode(struct net_device *netdev,
{
struct hnae3_handle *handle = hns3_get_handle(netdev);

- if (enable)
- set_bit(HNAE3_PFLAG_LIMIT_PROMISC, &handle->priv_flags);
- else
- clear_bit(HNAE3_PFLAG_LIMIT_PROMISC, &handle->priv_flags);
+ assign_bit(HNAE3_PFLAG_LIMIT_PROMISC, &handle->priv_flags, enable);

hns3_request_update_promisc_mode(handle);
}
@@ -1210,10 +1207,7 @@ static int hns3_set_tx_push(struct net_device *netdev, u32 tx_push)
netdev_dbg(netdev, "Changing tx push from %s to %s\n",
str_on_off(old_state), str_on_off(tx_push));

- if (tx_push)
- set_bit(HNS3_NIC_STATE_TX_PUSH_ENABLE, &priv->state);
- else
- clear_bit(HNS3_NIC_STATE_TX_PUSH_ENABLE, &priv->state);
+ assign_bit(HNS3_NIC_STATE_TX_PUSH_ENABLE, &priv->state, tx_push);

return 0;
}
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index 30e38cb4843a..08040a492985 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -341,11 +341,8 @@ static void hclge_set_vf_promisc_mode(struct hclge_vport *vport,
vport->vf_info.request_mc_en = req->msg.en_mc;
vport->vf_info.request_bc_en = req->msg.en_bc;

- if (req->msg.en_limit_promisc)
- set_bit(HNAE3_PFLAG_LIMIT_PROMISC, &handle->priv_flags);
- else
- clear_bit(HNAE3_PFLAG_LIMIT_PROMISC,
- &handle->priv_flags);
+ assign_bit(HNAE3_PFLAG_LIMIT_PROMISC, &handle->priv_flags,
+ req->msg.en_limit_promisc);

set_bit(HCLGE_VPORT_STATE_PROMISC_CHANGE, &vport->state);
hclge_task_schedule(hdev, 0);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index ef9d1e78c16a..6a992df06fa1 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -5263,10 +5263,7 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
test_bit(priv_flag->bitno, orig_flags) != new_val)
return -EOPNOTSUPP;

- if (new_val)
- set_bit(priv_flag->bitno, new_flags);
- else
- clear_bit(priv_flag->bitno, new_flags);
+ assign_bit(priv_flag->bitno, new_flags, new_val);
}

if (pf->hw.pf_id != 0)
@@ -5284,10 +5281,7 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
test_bit(priv_flag->bitno, orig_flags) != new_val)
return -EOPNOTSUPP;

- if (new_val)
- set_bit(priv_flag->bitno, new_flags);
- else
- clear_bit(priv_flag->bitno, new_flags);
+ assign_bit(priv_flag->bitno, new_flags, new_val);
}

flags_complete:
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index a26c3d47ec15..0087f7ae0c4c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -1158,10 +1158,7 @@ static int i40e_alloc_vf_res(struct i40e_vf *vf)
pf->queues_left -=
total_queue_pairs - I40E_DEFAULT_QUEUES_PER_VF;

- if (vf->trusted)
- set_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
- else
- clear_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
+ assign_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps, vf->trusted);

/* store the total qps number for the runtime
* VF req validation
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c
index bf9a821c543b..51388ec05a90 100644
--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c
@@ -1751,10 +1751,7 @@ static int ice_set_priv_flags(struct net_device *netdev, u32 flags)

priv_flag = &ice_gstrings_priv_flags[i];

- if (flags & BIT(i))
- set_bit(priv_flag->bitno, pf->flags);
- else
- clear_bit(priv_flag->bitno, pf->flags);
+ assign_bit(priv_flag->bitno, pf->flags, flags & BIT(i));
}

bitmap_xor(change_flags, pf->flags, orig_flags, ICE_PF_FLAGS_NBITS);
diff --git a/drivers/net/ethernet/intel/ice/ice_txclk.c b/drivers/net/ethernet/intel/ice/ice_txclk.c
index 48459f971cbf..3bca4443f03a 100644
--- a/drivers/net/ethernet/intel/ice/ice_txclk.c
+++ b/drivers/net/ethernet/intel/ice/ice_txclk.c
@@ -286,12 +286,9 @@ void ice_txclk_update_and_notify(struct ice_pf *pf)
if (ctrl_pf != pf)
mutex_lock(&ctrl_pf->dplls.lock);
for (int i = 0; i < ICE_REF_CLK_MAX; i++) {
- if (clk == i)
- set_bit(ptp_port->port_num,
- &ctrl_pf->ptp.tx_refclks[phy][i]);
- else
- clear_bit(ptp_port->port_num,
- &ctrl_pf->ptp.tx_refclks[phy][i]);
+ assign_bit(ptp_port->port_num,
+ &ctrl_pf->ptp.tx_refclks[phy][i],
+ clk == i);
}
if (ctrl_pf != pf)
mutex_unlock(&ctrl_pf->dplls.lock);
@@ -315,13 +312,10 @@ void ice_txclk_update_and_notify(struct ice_pf *pf)
*/
if (ctrl_pf != pf)
mutex_lock(&ctrl_pf->dplls.lock);
- for (int i = 0; i < ICE_REF_CLK_MAX; i++)
- if (clk == i)
- set_bit(ptp_port->port_num,
- &ctrl_pf->ptp.tx_refclks[phy][i]);
- else
- clear_bit(ptp_port->port_num,
- &ctrl_pf->ptp.tx_refclks[phy][i]);
+ for (int i = 0; i < ICE_REF_CLK_MAX; i++) {
+ assign_bit(ptp_port->port_num,
+ &ctrl_pf->ptp.tx_refclks[phy][i], clk == i);
+ }
if (ctrl_pf != pf)
mutex_unlock(&ctrl_pf->dplls.lock);

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
index 8ced44a4495e..ade394c2beba 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
@@ -981,15 +981,9 @@ int verify_lmac_fc_cfg(void *cgxd, int lmac_id, u8 tx_pause, u8 rx_pause,
if (!lmac)
return -ENODEV;

- if (!rx_pause)
- clear_bit(pfvf_idx, lmac->rx_fc_pfvf_bmap.bmap);
- else
- set_bit(pfvf_idx, lmac->rx_fc_pfvf_bmap.bmap);
+ assign_bit(pfvf_idx, lmac->rx_fc_pfvf_bmap.bmap, rx_pause);

- if (!tx_pause)
- clear_bit(pfvf_idx, lmac->tx_fc_pfvf_bmap.bmap);
- else
- set_bit(pfvf_idx, lmac->tx_fc_pfvf_bmap.bmap);
+ assign_bit(pfvf_idx, lmac->tx_fc_pfvf_bmap.bmap, tx_pause);

/* check if other pfvfs are using flow control */
if (!rx_pause && bitmap_weight(lmac->rx_fc_pfvf_bmap.bmap, lmac->rx_fc_pfvf_bmap.max)) {
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c b/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
index 2b67671a2bd8..7c829b1da3e5 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
@@ -857,10 +857,7 @@ npc_cn20k_enable_mcam_entry(struct rvu *rvu, int blkaddr,
}

update_en_map:
- if (enable)
- set_bit(index, npc_priv->en_map);
- else
- clear_bit(index, npc_priv->en_map);
+ assign_bit(index, npc_priv->en_map, enable);

return 0;
}
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
index d80d2c00bd84..93c5c4b298bf 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
@@ -1233,28 +1233,19 @@ static int rvu_nix_blk_aq_enq_inst(struct rvu *rvu, struct nix_hw *nix_hw,
ena = (req->rq.ena & req->rq_mask.ena) |
(test_bit(req->qidx, pfvf->rq_bmap) &
~req->rq_mask.ena);
- if (ena)
- __set_bit(req->qidx, pfvf->rq_bmap);
- else
- __clear_bit(req->qidx, pfvf->rq_bmap);
+ __assign_bit(req->qidx, pfvf->rq_bmap, ena);
}
if (req->ctype == NIX_AQ_CTYPE_SQ) {
ena = (req->rq.ena & req->sq_mask.ena) |
(test_bit(req->qidx, pfvf->sq_bmap) &
~req->sq_mask.ena);
- if (ena)
- __set_bit(req->qidx, pfvf->sq_bmap);
- else
- __clear_bit(req->qidx, pfvf->sq_bmap);
+ __assign_bit(req->qidx, pfvf->sq_bmap, ena);
}
if (req->ctype == NIX_AQ_CTYPE_CQ) {
ena = (req->rq.ena & req->cq_mask.ena) |
(test_bit(req->qidx, pfvf->cq_bmap) &
~req->cq_mask.ena);
- if (ena)
- __set_bit(req->qidx, pfvf->cq_bmap);
- else
- __clear_bit(req->qidx, pfvf->cq_bmap);
+ __assign_bit(req->qidx, pfvf->cq_bmap, ena);
}
}

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
index e2a33e46b48a..334dc3e888f4 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
@@ -169,10 +169,7 @@ int rvu_npa_aq_enq_inst(struct rvu *rvu, struct npa_aq_enq_req *req,
ena = (req->aura.ena & req->aura_mask.ena) |
(test_bit(req->aura_id, pfvf->aura_bmap) &
~req->aura_mask.ena);
- if (ena)
- __set_bit(req->aura_id, pfvf->aura_bmap);
- else
- __clear_bit(req->aura_id, pfvf->aura_bmap);
+ __assign_bit(req->aura_id, pfvf->aura_bmap, ena);
}
}

@@ -184,10 +181,7 @@ int rvu_npa_aq_enq_inst(struct rvu *rvu, struct npa_aq_enq_req *req,
ena = (req->pool.ena & req->pool_mask.ena) |
(test_bit(req->aura_id, pfvf->pool_bmap) &
~req->pool_mask.ena);
- if (ena)
- __set_bit(req->aura_id, pfvf->pool_bmap);
- else
- __clear_bit(req->aura_id, pfvf->pool_bmap);
+ __assign_bit(req->aura_id, pfvf->pool_bmap, ena);
}
}
spin_unlock(&aq->lock);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
index 3ed59ced0407..261c466a4d36 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -2320,10 +2320,8 @@ static int set_pflag_rx_no_csum_complete(struct net_device *netdev, bool enable)

for (i = 0; i < channels->num; i++) {
c = channels->c[i];
- if (enable)
- __set_bit(MLX5E_RQ_STATE_NO_CSUM_COMPLETE, &c->rq.state);
- else
- __clear_bit(MLX5E_RQ_STATE_NO_CSUM_COMPLETE, &c->rq.state);
+ __assign_bit(MLX5E_RQ_STATE_NO_CSUM_COMPLETE, &c->rq.state,
+ enable);
}

return 0;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
index 07440c58713a..7c0585fe1ee7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
@@ -66,10 +66,8 @@ static int mlx5_fw_reset_enable_remote_dev_reset_set(struct devlink *devlink, u3

fw_reset = dev->priv.fw_reset;

- if (ctx->val.vbool)
- clear_bit(MLX5_FW_RESET_FLAGS_NACK_RESET_REQUEST, &fw_reset->reset_flags);
- else
- set_bit(MLX5_FW_RESET_FLAGS_NACK_RESET_REQUEST, &fw_reset->reset_flags);
+ assign_bit(MLX5_FW_RESET_FLAGS_NACK_RESET_REQUEST,
+ &fw_reset->reset_flags, !ctx->val.vbool);
return 0;
}

diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_rpc.c b/drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
index bc0f38b6a2b2..ab6e342ec3fa 100644
--- a/drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
+++ b/drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
@@ -126,12 +126,8 @@ void fbnic_bmc_rpc_all_multi_config(struct fbnic_dev *fbd,
set_bit(FBNIC_MAC_ADDR_T_BMC, mac_addr->act_tcam);
mac_addr->state = FBNIC_TCAM_S_ADD;
}
- if (enable_host)
- set_bit(FBNIC_MAC_ADDR_T_ALLMULTI,
- mac_addr->act_tcam);
- else
- clear_bit(FBNIC_MAC_ADDR_T_ALLMULTI,
- mac_addr->act_tcam);
+ assign_bit(FBNIC_MAC_ADDR_T_ALLMULTI, mac_addr->act_tcam,
+ enable_host);
} else {
__fbnic_xc_unsync(mac_addr, FBNIC_MAC_ADDR_T_BMC);
__fbnic_xc_unsync(mac_addr, FBNIC_MAC_ADDR_T_ALLMULTI);
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
index fc8c50e8f365..119ac720c078 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
@@ -655,15 +655,9 @@ static int ionic_cmb_rings_toggle(struct ionic_lif *lif, bool cmb_tx, bool cmb_r
if (pages_used < 0)
return pages_used;

- if (cmb_tx)
- set_bit(IONIC_LIF_F_CMB_TX_RINGS, lif->state);
- else
- clear_bit(IONIC_LIF_F_CMB_TX_RINGS, lif->state);
+ assign_bit(IONIC_LIF_F_CMB_TX_RINGS, lif->state, cmb_tx);

- if (cmb_rx)
- set_bit(IONIC_LIF_F_CMB_RX_RINGS, lif->state);
- else
- clear_bit(IONIC_LIF_F_CMB_RX_RINGS, lif->state);
+ assign_bit(IONIC_LIF_F_CMB_RX_RINGS, lif->state, cmb_rx);

if (cmb_tx || cmb_rx)
netdev_info(lif->netdev, "Enabling CMB %s %s rings - %d pages\n",
diff --git a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c
index 647f30a16a94..037882a34203 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c
@@ -492,10 +492,8 @@ static int qede_set_priv_flags(struct net_device *dev, u32 flags)
if (dflags & ~BIT(QEDE_PRI_FLAG_RECOVER_ON_ERROR))
return -EINVAL;

- if (flags & BIT(QEDE_PRI_FLAG_RECOVER_ON_ERROR))
- set_bit(QEDE_ERR_IS_RECOVERABLE, &edev->err_flags);
- else
- clear_bit(QEDE_ERR_IS_RECOVERABLE, &edev->err_flags);
+ assign_bit(QEDE_ERR_IS_RECOVERABLE, &edev->err_flags,
+ flags & BIT(QEDE_PRI_FLAG_RECOVER_ON_ERROR));

return 0;
}
diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c
index 776840f60d01..1466ec85de24 100644
--- a/drivers/net/ethernet/qlogic/qla3xxx.c
+++ b/drivers/net/ethernet/qlogic/qla3xxx.c
@@ -1581,10 +1581,8 @@ static void ql_link_state_machine_work(struct work_struct *work)
*/
static void ql_get_phy_owner(struct ql3_adapter *qdev)
{
- if (ql_this_adapter_controls_port(qdev))
- set_bit(QL_LINK_MASTER, &qdev->flags);
- else
- clear_bit(QL_LINK_MASTER, &qdev->flags);
+ assign_bit(QL_LINK_MASTER, &qdev->flags,
+ ql_this_adapter_controls_port(qdev));
}

/*
@@ -3343,10 +3341,8 @@ static void ql_set_mac_info(struct ql3_adapter *qdev)
qdev->mac_ob_opcode = OUTBOUND_MAC_IOCB | func_number;
qdev->mb_bit_mask = FN0_MA_BITS_MASK;
qdev->PHYAddr = PORT0_PHY_ADDRESS;
- if (port_status & PORT_STATUS_SM0)
- set_bit(QL_LINK_OPTICAL, &qdev->flags);
- else
- clear_bit(QL_LINK_OPTICAL, &qdev->flags);
+ assign_bit(QL_LINK_OPTICAL, &qdev->flags,
+ port_status & PORT_STATUS_SM0);
break;

case ISP_CONTROL_FN1_NET:
@@ -3354,10 +3350,8 @@ static void ql_set_mac_info(struct ql3_adapter *qdev)
qdev->mac_ob_opcode = OUTBOUND_MAC_IOCB | func_number;
qdev->mb_bit_mask = FN1_MA_BITS_MASK;
qdev->PHYAddr = PORT1_PHY_ADDRESS;
- if (port_status & PORT_STATUS_SM1)
- set_bit(QL_LINK_OPTICAL, &qdev->flags);
- else
- clear_bit(QL_LINK_OPTICAL, &qdev->flags);
+ assign_bit(QL_LINK_OPTICAL, &qdev->flags,
+ port_status & PORT_STATUS_SM1);
break;

case ISP_CONTROL_FN0_SCSI:
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
index 576340315e0d..ef4a0376baff 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
@@ -644,10 +644,7 @@ static void qlcnic_83xx_dcb_aen_handler(struct qlcnic_dcb *dcb, void *data)
if (test_and_set_bit(QLCNIC_DCB_AEN_MODE, &dcb->state))
return;

- if (*val & BIT_8)
- set_bit(QLCNIC_DCB_STATE, &dcb->state);
- else
- clear_bit(QLCNIC_DCB_STATE, &dcb->state);
+ assign_bit(QLCNIC_DCB_STATE, &dcb->state, *val & BIT_8);

queue_delayed_work(dcb->wq, &dcb->aen_work, 0);
}
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
index 0704dbc52d82..a106f961e177 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
@@ -1488,10 +1488,8 @@ static int qlcnic_sriov_channel_cfg_cmd(struct qlcnic_adapter *adapter, u8 cmd_o
goto out;
}

- if (cmd_op == QLCNIC_BC_CMD_CHANNEL_INIT)
- set_bit(QLC_BC_VF_STATE, &vf->state);
- else
- clear_bit(QLC_BC_VF_STATE, &vf->state);
+ assign_bit(QLC_BC_VF_STATE, &vf->state,
+ cmd_op == QLCNIC_BC_CMD_CHANNEL_INIT);

out:
qlcnic_free_mbx_args(&cmd);
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
index 7052d34aad45..c69b41e317d2 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
@@ -773,10 +773,8 @@ static int qlcnic_sriov_pf_channel_cfg_cmd(struct qlcnic_bc_trans *trans,

cmd->rsp.arg[0] |= (1 << 25);

- if (trans->req_hdr->cmd_op == QLCNIC_BC_CMD_CHANNEL_INIT)
- set_bit(QLC_BC_VF_STATE, &vf->state);
- else
- clear_bit(QLC_BC_VF_STATE, &vf->state);
+ assign_bit(QLC_BC_VF_STATE, &vf->state,
+ trans->req_hdr->cmd_op == QLCNIC_BC_CMD_CHANNEL_INIT);

return err;

diff --git a/drivers/net/ethernet/wangxun/libwx/wx_ptp.c b/drivers/net/ethernet/wangxun/libwx/wx_ptp.c
index 4708e7f3958f..ea6865b23f5f 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_ptp.c
+++ b/drivers/net/ethernet/wangxun/libwx/wx_ptp.c
@@ -450,10 +450,7 @@ static int wx_ptp_feature_enable(struct ptp_clock_info *ptp,
wx->pps_width = 120000000;
}

- if (on)
- set_bit(WX_FLAG_PTP_PPS_ENABLED, wx->flags);
- else
- clear_bit(WX_FLAG_PTP_PPS_ENABLED, wx->flags);
+ assign_bit(WX_FLAG_PTP_PPS_ENABLED, wx->flags, on);

return wx->ptp_setup_sdp(wx);
}
diff --git a/drivers/net/phy/mediatek/mtk-phy-lib.c b/drivers/net/phy/mediatek/mtk-phy-lib.c
index 608072fbfde9..4c4eca870bde 100644
--- a/drivers/net/phy/mediatek/mtk-phy-lib.c
+++ b/drivers/net/phy/mediatek/mtk-phy-lib.c
@@ -136,22 +136,15 @@ int mtk_phy_led_hw_ctrl_get(struct phy_device *phydev, u8 index,
if (blink < 0)
return -EIO;

- if ((on & (on_set | MTK_PHY_LED_ON_FDX |
- MTK_PHY_LED_ON_HDX | MTK_PHY_LED_ON_LINKDOWN)) ||
- (blink & (rx_blink_set | tx_blink_set)))
- set_bit(bit_netdev, &priv->led_state);
- else
- clear_bit(bit_netdev, &priv->led_state);
+ assign_bit(bit_netdev, &priv->led_state,
+ (on & (on_set | MTK_PHY_LED_ON_FDX | MTK_PHY_LED_ON_HDX |
+ MTK_PHY_LED_ON_LINKDOWN)) ||
+ (blink & (rx_blink_set | tx_blink_set)));

- if (on & MTK_PHY_LED_ON_FORCE_ON)
- set_bit(bit_on, &priv->led_state);
- else
- clear_bit(bit_on, &priv->led_state);
+ assign_bit(bit_on, &priv->led_state, on & MTK_PHY_LED_ON_FORCE_ON);

- if (blink & MTK_PHY_LED_BLINK_FORCE_BLINK)
- set_bit(bit_blink, &priv->led_state);
- else
- clear_bit(bit_blink, &priv->led_state);
+ assign_bit(bit_blink, &priv->led_state,
+ blink & MTK_PHY_LED_BLINK_FORCE_BLINK);

if (!rules)
return 0;
@@ -254,10 +247,7 @@ int mtk_phy_led_hw_ctrl_set(struct phy_device *phydev, u8 index,
}
}

- if (blink || on)
- set_bit(bit_netdev, &priv->led_state);
- else
- clear_bit(bit_netdev, &priv->led_state);
+ assign_bit(bit_netdev, &priv->led_state, blink || on);

ret = phy_modify_mmd(phydev, MDIO_MMD_VEND2, index ?
MTK_PHY_LED1_ON_CTRL : MTK_PHY_LED0_ON_CTRL,
diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c
index fb61e53ff4c3..e11eb7a6cdf2 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -2004,10 +2004,7 @@ static ssize_t ath10k_write_btcoex(struct file *file,
ath10k_core_start_recovery(ar);
}

- if (val)
- set_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags);
- else
- clear_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags);
+ assign_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags, val);

ret = count;

@@ -2118,10 +2115,7 @@ static ssize_t ath10k_write_peer_stats(struct file *file,
goto exit;
}

- if (val)
- set_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags);
- else
- clear_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags);
+ assign_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags, val);

ath10k_info(ar, "restarting firmware due to Peer stats change");

diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c
index 8de133fe2a72..8f171ab6f4de 100644
--- a/drivers/net/wireless/ath/ath10k/snoc.c
+++ b/drivers/net/wireless/ath/ath10k/snoc.c
@@ -1532,10 +1532,8 @@ static int ath10k_snoc_modem_notify(struct notifier_block *nb, unsigned long act
case QCOM_SSR_BEFORE_SHUTDOWN:
ath10k_dbg(ar, ATH10K_DBG_SNOC, "received modem %s event\n",
notify_data->crashed ? "crashed" : "stopping");
- if (!notify_data->crashed)
- set_bit(ATH10K_SNOC_FLAG_MODEM_STOPPED, &ar_snoc->flags);
- else
- clear_bit(ATH10K_SNOC_FLAG_MODEM_STOPPED, &ar_snoc->flags);
+ assign_bit(ATH10K_SNOC_FLAG_MODEM_STOPPED, &ar_snoc->flags,
+ !notify_data->crashed);
break;

case QCOM_SSR_AFTER_SHUTDOWN:
diff --git a/drivers/net/wireless/ath/ath11k/htc.c b/drivers/net/wireless/ath/ath11k/htc.c
index 5f9ee5e633da..07fc959ed74c 100644
--- a/drivers/net/wireless/ath/ath11k/htc.c
+++ b/drivers/net/wireless/ath/ath11k/htc.c
@@ -244,10 +244,7 @@ static void ath11k_htc_suspend_complete(struct ath11k_base *ab, bool ack)
{
ath11k_dbg(ab, ATH11K_DBG_BOOT, "suspend complete %d\n", ack);

- if (ack)
- set_bit(ATH11K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags);
- else
- clear_bit(ATH11K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags);
+ assign_bit(ATH11K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags, ack);

complete(&ab->htc_suspend);
}
diff --git a/drivers/net/wireless/ath/ath12k/htc.c b/drivers/net/wireless/ath/ath12k/htc.c
index 92138caa2a82..7227bed91ade 100644
--- a/drivers/net/wireless/ath/ath12k/htc.c
+++ b/drivers/net/wireless/ath/ath12k/htc.c
@@ -236,10 +236,7 @@ static void ath12k_htc_suspend_complete(struct ath12k_base *ab, bool ack)
{
ath12k_dbg(ab, ATH12K_DBG_BOOT, "boot suspend complete %d\n", ack);

- if (ack)
- set_bit(ATH12K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags);
- else
- clear_bit(ATH12K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags);
+ assign_bit(ATH12K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags, ack);

complete(&ab->htc_suspend);
}
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index 2224cb74b1d4..5ea18c87e12e 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -968,10 +968,7 @@ static void ar9003_hw_tx_iq_cal_outlier_detection(struct ath_hw *ah,
AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN, 0x1);

if (caldata) {
- if (is_reusable)
- set_bit(TXIQCAL_DONE, &caldata->cal_flags);
- else
- clear_bit(TXIQCAL_DONE, &caldata->cal_flags);
+ assign_bit(TXIQCAL_DONE, &caldata->cal_flags, is_reusable);
}

return;
diff --git a/drivers/net/wireless/ath/ath9k/mci.c b/drivers/net/wireless/ath/ath9k/mci.c
index f82bb2349928..62ad761d6a76 100644
--- a/drivers/net/wireless/ath/ath9k/mci.c
+++ b/drivers/net/wireless/ath/ath9k/mci.c
@@ -348,10 +348,7 @@ static u8 ath_mci_process_status(struct ath_softc *sc,
if (status->conn_handle >= ATH_MCI_MAX_PROFILE)
return 0;

- if (status->is_critical)
- __set_bit(status->conn_handle, mci->status);
- else
- __clear_bit(status->conn_handle, mci->status);
+ __assign_bit(status->conn_handle, mci->status, status->is_critical);

mci->num_mgmt = 0;
do {
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
index 2f925d22b9aa..2c49f3b493bd 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
@@ -2034,10 +2034,7 @@ int mt76_connac_mcu_sched_scan_enable(struct mt76_phy *phy,
.active = !enable,
};

- if (enable)
- set_bit(MT76_HW_SCHED_SCANNING, &phy->state);
- else
- clear_bit(MT76_HW_SCHED_SCANNING, &phy->state);
+ assign_bit(MT76_HW_SCHED_SCANNING, &phy->state, enable);

return mt76_mcu_send_msg(phy->dev, MCU_CE_CMD(SCHED_SCAN_ENABLE),
&req, sizeof(req), false);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
index fa29c486a455..aeb017516186 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
@@ -3467,10 +3467,7 @@ mt7925_mcu_sched_scan_enable(struct mt76_phy *phy,
req = (struct scan_sched_enable *)tlv;
req->active = !enable;

- if (enable)
- set_bit(MT76_HW_SCHED_SCANNING, &phy->state);
- else
- clear_bit(MT76_HW_SCHED_SCANNING, &phy->state);
+ assign_bit(MT76_HW_SCHED_SCANNING, &phy->state, enable);

return mt76_mcu_skb_send_msg(mdev, skb, MCU_UNI_CMD(SCAN_REQ),
true);
diff --git a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/realtek/rtw88/debug.c
index b67d69b01f87..3a10f1bbe0e0 100644
--- a/drivers/net/wireless/realtek/rtw88/debug.c
+++ b/drivers/net/wireless/realtek/rtw88/debug.c
@@ -1051,10 +1051,7 @@ static ssize_t rtw_debugfs_set_force_lowest_basic_rate(struct file *filp,
if (err)
return err;

- if (input)
- set_bit(RTW_FLAG_FORCE_LOWEST_RATE, rtwdev->flags);
- else
- clear_bit(RTW_FLAG_FORCE_LOWEST_RATE, rtwdev->flags);
+ assign_bit(RTW_FLAG_FORCE_LOWEST_RATE, rtwdev->flags, input);

return count;
}
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 454d876aeb88..dacc2d889a46 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -7365,10 +7365,7 @@ void rtw89_core_rfkill_poll(struct rtw89_dev *rtwdev, bool force)
rtw89_info(rtwdev, "rfkill hardware state changed to %s\n",
str_enable_disable(!blocked));

- if (blocked)
- set_bit(RTW89_FLAG_HW_RFKILL_STATE, rtwdev->flags);
- else
- clear_bit(RTW89_FLAG_HW_RFKILL_STATE, rtwdev->flags);
+ assign_bit(RTW89_FLAG_HW_RFKILL_STATE, rtwdev->flags, blocked);

wiphy_rfkill_set_hw_state(rtwdev->hw->wiphy, blocked);
}
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index df396fbfca26..68da8908f14c 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -6046,10 +6046,7 @@ rtw89_mac_c2h_pwr_int_notify(struct rtw89_dev *rtwdev, struct sk_buff *skb, u32
goto out;

rtwsta = rtwsta_link->rtwsta;
- if (ps)
- set_bit(RTW89_REMOTE_STA_IN_PS, rtwsta->flags);
- else
- clear_bit(RTW89_REMOTE_STA_IN_PS, rtwsta->flags);
+ assign_bit(RTW89_REMOTE_STA_IN_PS, rtwsta->flags, ps);

sta = rtwsta_to_sta(rtwsta);
ieee80211_sta_ps_transition(sta, ps);
@@ -7004,10 +7001,7 @@ void rtw89_mac_bf_monitor_calc(struct rtw89_dev *rtwdev,
&data);

rtw89_debug(rtwdev, RTW89_DBG_BF, "bfee STA count=%d\n", data.count);
- if (data.count)
- set_bit(RTW89_FLAG_BFEE_MON, rtwdev->flags);
- else
- clear_bit(RTW89_FLAG_BFEE_MON, rtwdev->flags);
+ assign_bit(RTW89_FLAG_BFEE_MON, rtwdev->flags, data.count);
}

void _rtw89_mac_bf_monitor_track(struct rtw89_dev *rtwdev)
diff --git a/drivers/net/wireless/realtek/rtw89/regd.c b/drivers/net/wireless/realtek/rtw89/regd.c
index 14fab6b1a74a..b9a5ce218b1d 100644
--- a/drivers/net/wireless/realtek/rtw89/regd.c
+++ b/drivers/net/wireless/realtek/rtw89/regd.c
@@ -421,10 +421,7 @@ static void __rtw89_regd_setup_policy_6ghz(struct rtw89_dev *rtwdev, bool block,
return;
}

- if (block)
- set_bit(index, regulatory->block_6ghz);
- else
- clear_bit(index, regulatory->block_6ghz);
+ assign_bit(index, regulatory->block_6ghz, block);
}

static void rtw89_regd_setup_policy_6ghz(struct rtw89_dev *rtwdev)
diff --git a/drivers/net/wireless/ti/wlcore/rx.c b/drivers/net/wireless/ti/wlcore/rx.c
index 307fab21050b..4d6f5a047782 100644
--- a/drivers/net/wireless/ti/wlcore/rx.c
+++ b/drivers/net/wireless/ti/wlcore/rx.c
@@ -316,10 +316,7 @@ int wl1271_rx_filter_enable(struct wl1271 *wl,
return ret;
}

- if (enable)
- __set_bit(index, wl->rx_filter_enabled);
- else
- __clear_bit(index, wl->rx_filter_enabled);
+ __assign_bit(index, wl->rx_filter_enabled, enable);

return 0;
}

---
base-commit: 0d9d0dbf2fddcff5859d623e90ca73c4054276e1
change-id: 20260917-net-assign-bit-81f950e23f6a

Best regards,
--
Peng Fan <peng.fan@xxxxxxx>