2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/net/ethernet/qlogic/qed
Arnd Bergmann 95b6759a81 net: qed: reduce stack usage for TLV processing
clang gets a bit confused by the code in the qed_mfw_process_tlv_req and
ends up spilling registers to the stack hundreds of times. When sanitizers
are enabled, this can end up blowing the stack warning limit:

drivers/net/ethernet/qlogic/qed/qed_mng_tlv.c:1244:5: error: stack frame size (1824) exceeds limit (1280) in 'qed_mfw_process_tlv_req' [-Werror,-Wframe-larger-than]

Apparently the problem is the complexity of qed_mfw_update_tlvs()
after inlining, and marking the four main branches of that function
as noinline_for_stack makes this problem completely go away, the stack
usage goes down to 100 bytes.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2025-06-23 14:21:32 +01:00
..
Makefile
qed_chain.c
qed_cxt.c qed: Fix a potential use-after-free in qed_cxt_tables_alloc 2023-12-12 13:33:51 -08:00
qed_cxt.h
qed_dbg_hsi.h qed: Remove unused qed_print_mcp_trace_* 2025-04-15 08:26:28 -07:00
qed_dcbx.c
qed_dcbx.h
qed_debug.c qed: Remove unused qed_print_mcp_trace_* 2025-04-15 08:26:28 -07:00
qed_debug.h
qed_dev_api.h
qed_dev.c qed: Remove unused qed_db_recovery_dp 2025-04-15 08:26:28 -07:00
qed_devlink.c devlink: extend devlink_param *set pointer 2024-04-22 13:05:19 -07:00
qed_devlink.h
qed_fcoe.c
qed_fcoe.h
qed_hsi.h qed: Remove unused qed_calc_*_ctx_validation functions 2025-04-15 08:26:27 -07:00
qed_hw.c qed: Remove unused qed_ptt_invalidate 2025-04-15 08:26:27 -07:00
qed_hw.h qed: Remove unused qed_ptt_invalidate 2025-04-15 08:26:27 -07:00
qed_init_fw_funcs.c qed: Remove unused qed_calc_*_ctx_validation functions 2025-04-15 08:26:27 -07:00
qed_init_ops.c
qed_init_ops.h
qed_int.c
qed_int.h
qed_iro_hsi.h
qed_iscsi.c
qed_iscsi.h
qed_iwarp.c
qed_iwarp.h
qed_l2.c
qed_l2.h
qed_ll2.c
qed_ll2.h
qed_main.c qed: remove cast to pointers passed to kfree 2025-03-18 11:05:58 +01:00
qed_mcp.c qed: fix possible uninit pointer read in qed_mcp_nvm_info_populate() 2024-12-17 15:08:52 +01:00
qed_mcp.h
qed_mfw_hsi.h
qed_mng_tlv.c net: qed: reduce stack usage for TLV processing 2025-06-23 14:21:32 +01:00
qed_nvmetcp_fw_funcs.c
qed_nvmetcp_fw_funcs.h
qed_nvmetcp.c
qed_nvmetcp.h
qed_ooo.c
qed_ooo.h
qed_ptp.c
qed_ptp.h
qed_rdma.c qed: remove duplicated assignment to variable opaque_fid 2024-02-08 19:05:01 -08:00
qed_rdma.h
qed_reg_addr.h
qed_roce.c
qed_roce.h
qed_selftest.c
qed_selftest.h
qed_sp_commands.c
qed_sp.h
qed_spq.c
qed_sriov.c net: qed: fix typos 2025-02-04 14:04:38 -08:00
qed_sriov.h
qed_vf.c
qed_vf.h
qed.h qed: Remove unused qed_db_recovery_dp 2025-04-15 08:26:28 -07:00