Skip to content

Commit 010c40c

Browse files
committed
Johannes Berg says: ==================== Just a few fixes: - iwlegacy: work around large stack with clang/kasan - mac80211: fix integer overflow - mac80211: fix link struct init vs. RCU publish - iwlwifi: fix warning on IFF_UP * tag 'wireless-2025-06-25' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless: wifi: mac80211: finish link init before RCU publish wifi: iwlwifi: mvm: assume '1' as the default mac_config_cmd version wifi: mac80211: fix beacon interval calculation overflow wifi: iwlegacy: work around excessive stack usage on clang/kasan ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 9caca6a + 95b922d commit 010c40c

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

drivers/net/wireless/intel/iwlegacy/4965-rs.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,8 @@ il4965_rs_extract_rate(u32 rate_n_flags)
203203
return (u8) (rate_n_flags & 0xFF);
204204
}
205205

206-
static void
206+
/* noinline works around https://github.com/llvm/llvm-project/issues/143908 */
207+
static noinline_for_stack void
207208
il4965_rs_rate_scale_clear_win(struct il_rate_scale_data *win)
208209
{
209210
win->data = 0;

drivers/net/wireless/intel/iwlwifi/mvm/mld-mac.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ static void iwl_mvm_mld_mac_ctxt_cmd_common(struct iwl_mvm *mvm,
3232
unsigned int link_id;
3333
int cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw,
3434
WIDE_ID(MAC_CONF_GROUP,
35-
MAC_CONFIG_CMD), 0);
35+
MAC_CONFIG_CMD), 1);
3636

37-
if (WARN_ON(cmd_ver < 1 || cmd_ver > 3))
37+
if (WARN_ON(cmd_ver > 3))
3838
return;
3939

4040
cmd->id_and_color = cpu_to_le32(mvmvif->id);

net/mac80211/link.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,6 @@ void ieee80211_link_init(struct ieee80211_sub_if_data *sdata,
9393
if (link_id < 0)
9494
link_id = 0;
9595

96-
rcu_assign_pointer(sdata->vif.link_conf[link_id], link_conf);
97-
rcu_assign_pointer(sdata->link[link_id], link);
98-
9996
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
10097
struct ieee80211_sub_if_data *ap_bss;
10198
struct ieee80211_bss_conf *ap_bss_conf;
@@ -145,6 +142,9 @@ void ieee80211_link_init(struct ieee80211_sub_if_data *sdata,
145142

146143
ieee80211_link_debugfs_add(link);
147144
}
145+
146+
rcu_assign_pointer(sdata->vif.link_conf[link_id], link_conf);
147+
rcu_assign_pointer(sdata->link[link_id], link);
148148
}
149149

150150
void ieee80211_link_stop(struct ieee80211_link_data *link)

net/mac80211/util.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3884,7 +3884,7 @@ void ieee80211_recalc_dtim(struct ieee80211_local *local,
38843884
{
38853885
u64 tsf = drv_get_tsf(local, sdata);
38863886
u64 dtim_count = 0;
3887-
u16 beacon_int = sdata->vif.bss_conf.beacon_int * 1024;
3887+
u32 beacon_int = sdata->vif.bss_conf.beacon_int * 1024;
38883888
u8 dtim_period = sdata->vif.bss_conf.dtim_period;
38893889
struct ps_data *ps;
38903890
u8 bcns_from_dtim;

0 commit comments

Comments
 (0)