35 lines
1.4 KiB
Diff
35 lines
1.4 KiB
Diff
From e3d18eed972374cfbac1e58cf109209b07c1e27e Mon Sep 17 00:00:00 2001
|
|
From: Oleksandr Natalenko <oleksandr@natalenko.name>
|
|
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 <oleksandr@natalenko.name>
|
|
---
|
|
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)
|
|
{
|