-
- Downloads
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: e7614370 ("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>
Loading