On Sat, Mar 1, 2025, at 14:36, Stanislaw Gruszka wrote: > On Sat, Mar 01, 2025 at 01:38:16PM +0100, Arnd Bergmann wrote: >> On Sat, Mar 1, 2025, at 13:28, Stanislaw Gruszka wrote: >> > On Tue, Feb 25, 2025 at 03:53:53PM +0100, Arnd Bergmann wrote: >> > >> > But then the code will be compiled for !CONFIG_MAC80211_DEBUGFS >> > case, it does compile for me: >> > >> > - 22475 1160 0 23635 >> > 5c53 drivers/net/wireless/intel/iwlegacy/4965-rs.o >> > + 23008 1168 0 24176 >> > 5e70 drivers/net/wireless/intel/iwlegacy/4965-rs.o >> >> Very strange, this really shouldn't happen. Which symbols >> exactly do you see the compiler fail to drop with my patch, > > nm 4965-rs.o diffrence before and after patch: > 00000000000000dd t il4965_rs_alloc_sta.cold > -0000000000001810 t il4965_rs_collect_tx_data.isra.0 > -00000000000012b0 t il4965_rs_fill_link_cmd > -0000000000000495 t il4965_rs_fill_link_cmd.cold > +0000000000001850 t il4965_rs_collect_tx_data.isra.0 > +0000000000000e90 t il4965_rs_dbgfs_set_mcs.isra.0 > +00000000000002f6 t il4965_rs_dbgfs_set_mcs.isra.0.cold > +0000000000001340 t il4965_rs_fill_link_cmd > +0000000000000518 t il4965_rs_fill_link_cmd.cold > 00000000000002a0 t il4965_rs_free Ah, so the debugfs files get eliminated, but il4965_rs_dbgfs_set_mcs() does not. I think this should do it: --- a/drivers/net/wireless/intel/iwlegacy/4965-rs.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-rs.c @@ -2495,6 +2495,9 @@ il4965_rs_dbgfs_set_mcs(struct il_lq_sta *lq_sta, u32 * rate_n_flags, int idx) u8 valid_tx_ant; u8 ant_sel_tx; + if (!IS_ENABLED(CONFIG_MAC80211_DEBUGFS)) + return; + il = lq_sta->drv; valid_tx_ant = il->hw_params.valid_tx_ant; if (lq_sta->dbg_fixed_rate) { or possibly il4965_rs_dbgfs_set_mcs() can stay in the #ifdef if you prefer. Arnd