lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250301133652.GA60453@wp.pl>
Date: Sat, 1 Mar 2025 14:36:52 +0100
From: Stanislaw Gruszka <stf_xl@...pl>
To: Arnd Bergmann <arnd@...db.de>
Cc: Arnd Bergmann <arnd@...nel.org>,
	Johannes Berg <johannes@...solutions.net>,
	Kalle Valo <kvalo@...nel.org>, Ben Hutchings <ben@...adent.org.uk>,
	linux <linux@...blig.org>,
	"Gustavo A. R. Silva" <gustavoars@...nel.org>,
	linux-wireless@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] [v2] iwlegacy: don't warn for unused variables with
 DEBUG_FS=n

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:

                  U ieee80211_rate_control_register
                  U ieee80211_rate_control_unregister
                  U ieee80211_start_tx_ba_session
                  U ieee80211_stop_tx_ba_session
 0000000000000010 t il4965_hwrate_to_plcp_idx
-00000000000043b0 T il4965_rate_control_register
-00000000000043e0 T il4965_rate_control_unregister
+00000000000043f0 T il4965_rate_control_register
+0000000000004420 T il4965_rate_control_unregister
 00000000000002e0 t il4965_rate_n_flags_from_tbl
 0000000000000000 t il4965_rate_n_flags_from_tbl.cold
 0000000000000270 t il4965_rs_alloc
 0000000000000710 t il4965_rs_alloc_sta
 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
 0000000000000e40 t il4965_rs_free_sta
 000000000000028d t il4965_rs_free_sta.cold
@@ -173,31 +184,31 @@
 0000000000000a20 t il4965_rs_get_best_rate
 0000000000000bb0 t il4965_rs_get_rate
 0000000000000209 t il4965_rs_get_rate.cold
-0000000000001180 t il4965_rs_get_tbl_info_from_mcs.isra.0
-0000000000003bd0 T il4965_rs_rate_init
-0000000000000d5f t il4965_rs_rate_init.cold
+0000000000001210 t il4965_rs_get_tbl_info_from_mcs.isra.0
+0000000000003c10 T il4965_rs_rate_init
+0000000000000de4 t il4965_rs_rate_init.cold
 00000000000002c0 t il4965_rs_rate_init_stub
 0000000000000760 t il4965_rs_set_expected_tpt_table
 0000000000000490 t il4965_rs_stay_in_table
 0000000000000088 t il4965_rs_stay_in_table.cold
-0000000000001000 t il4965_rs_switch_to_mimo2.isra.0
-00000000000003c3 t il4965_rs_switch_to_mimo2.isra.0.cold
-0000000000000e90 t il4965_rs_switch_to_siso.isra.0
-00000000000002f6 t il4965_rs_switch_to_siso.isra.0.cold
+0000000000001090 t il4965_rs_switch_to_mimo2.isra.0
+0000000000000446 t il4965_rs_switch_to_mimo2.isra.0.cold
+0000000000000f20 t il4965_rs_switch_to_siso.isra.0
+0000000000000379 t il4965_rs_switch_to_siso.isra.0.cold
 00000000000000d0 t il4965_rs_tl_rm_old_stats
 00000000000001a0 t il4965_rs_toggle_antenna
-0000000000001970 t il4965_rs_tx_status
-00000000000004d4 t il4965_rs_tx_status.cold
+00000000000019b0 t il4965_rs_tx_status
+0000000000000559 t il4965_rs_tx_status.cold
                  U il_debug_level
                  U il_is_ht40_tx_allowed
-0000000000001180 R il_rates
+00000000000012a0 R il_rates
                  U il_send_lq_cmd
                  U jiffies
                  U jiffies_to_msecs
 000000000000004b r .LC15
 0000000000000070 r .LC9
-0000000000001100 r rs_4965_ops
-0000000000001210 r rs_ht_to_legacy
+0000000000001220 r rs_4965_ops
+0000000000001330 r rs_ht_to_legacy
                  U __stack_chk_fail
                  U __ubsan_handle_out_of_bounds
                  U __ubsan_handle_shift_out_of_bounds

> and which compiler version are you using?

It is:
gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)

I've checked on other system with
gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
and there size difference is similar:

-  28876	   4875	      0	  33751	   83d7	drivers/net/wireless/intel/iwlegacy/4965-rs.o
+  29454	   4851	      0	  34305	   8601	drivers/net/wireless/intel/iwlegacy/4965-rs.o

> > How about moving  
> > static const struct il_rate_mcs_info il_rate_mcs[RATE_COUNT]
> > under CONFIG_MAC80211_DEBUGFS ? Maybe inside the function that use it ? 
> 
> It's not supposed to make a difference, let's try to figure
> out if there is a compiler bug or a mistake in my patch first
> and then fix it in the right place.

Regards
Stanislaw

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ