summaryrefslogtreecommitdiffstats
path: root/net/sched/act_csum.c
diff options
context:
space:
mode:
authorAlexandre Ferrieux <alexandre.ferrieux@gmail.com>2024-11-10 18:28:36 +0100
committerJakub Kicinski <kuba@kernel.org>2024-11-13 03:26:03 +0100
commit73af53d82076bbe184d9ece9e14b0dc8599e6055 (patch)
tree24297073f910e35a18cd48019ed264fa1e34b6fd /net/sched/act_csum.c
parentMAINTAINERS: Re-add cancelled Renesas driver sections (diff)
downloadlinux-73af53d82076bbe184d9ece9e14b0dc8599e6055.tar.xz
linux-73af53d82076bbe184d9ece9e14b0dc8599e6055.zip
net: sched: cls_u32: Fix u32's systematic failure to free IDR entries for hnodes.
To generate hnode handles (in gen_new_htid()), u32 uses IDR and encodes the returned small integer into a structured 32-bit word. Unfortunately, at disposal time, the needed decoding is not done. As a result, idr_remove() fails, and the IDR fills up. Since its size is 2048, the following script ends up with "Filter already exists": tc filter add dev myve $FILTER1 tc filter add dev myve $FILTER2 for i in {1..2048} do echo $i tc filter del dev myve $FILTER2 tc filter add dev myve $FILTER2 done This patch adds the missing decoding logic for handles that deserve it. Fixes: e7614370d6f0 ("net_sched: use idr to allocate u32 filter handles") Reviewed-by: Eric Dumazet <edumazet@google.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: Alexandre Ferrieux <alexandre.ferrieux@orange.com> Tested-by: Victor Nogueira <victor@mojatatu.com> Link: https://patch.msgid.link/20241110172836.331319-1-alexandre.ferrieux@orange.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/sched/act_csum.c')
0 files changed, 0 insertions, 0 deletions