From e3d18eed972374cfbac1e58cf109209b07c1e27e Mon Sep 17 00:00:00 2001 From: Oleksandr Natalenko Date: Tue, 8 Apr 2025 12:02:36 +0200 Subject: ice: mark ice_write_prof_mask_reg() as noinline The following happens during build: ``` drivers/net/ethernet/intel/ice/ice.o: error: objtool: ice_free_prof_mask.isra.0() falls through to next function ice_free_flow_profs.cold() drivers/net/ethernet/intel/ice/ice.o: error: objtool: ice_free_prof_mask.isra.0.cold() is missing an ELF size annotation ``` Marking ice_write_prof_mask_reg() as noinline solves this, although I'm not sure if this is a proper solution. Apparently, this happens with -O3 only, the `default` case is never reachable, but the optimiser generates branching to a random code location. Link: https://lore.kernel.org/lkml/6nzfoyak4cewjpmdflg5yi7jh2mqqdsfqgljoolx5lvdo2p65p@rwjfl7cqkfoo/ Signed-off-by: Oleksandr Natalenko --- drivers/net/ethernet/intel/ice/ice_flex_pipe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c +++ b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c @@ -1404,7 +1404,7 @@ static int ice_prof_inc_ref(struct ice_h * @idx: index of the FV which will use the mask * @mask: the 16-bit mask */ -static void +static noinline void ice_write_prof_mask_reg(struct ice_hw *hw, enum ice_block blk, u16 mask_idx, u16 idx, u16 mask) {