]> Git Repo - linux.git/commit
net: sched: cls_api: improve the error message for ID allocation failure
authorJakub Kicinski <[email protected]>
Fri, 8 Nov 2024 01:02:54 +0000 (17:02 -0800)
committerPaolo Abeni <[email protected]>
Tue, 12 Nov 2024 11:58:31 +0000 (12:58 +0100)
commita58f00ed24b849d449f7134fd5d86f07090fe2f5
tree7b6b382c4251565ad843c65ded73851195338cae
parent12079a59ce52e72a342c49cfacf0281213fd6f32
net: sched: cls_api: improve the error message for ID allocation failure

We run into an exhaustion problem with the kernel-allocated filter IDs.
Our allocation problem can be fixed on the user space side,
but the error message in this case was quite misleading:

  "Filter with specified priority/protocol not found" (EINVAL)

Specifically when we can't allocate a _new_ ID because filter with
lowest ID already _exists_, saying "filter not found", is confusing.

Kernel allocates IDs in range of 0xc0000 -> 0x8000, giving out ID one
lower than lowest existing in that range. The error message makes sense
when tcf_chain_tp_find() gets called for GET and DEL but for NEW we
need to provide more specific error messages for all three cases:

 - user wants the ID to be auto-allocated but filter with ID 0x8000
   already exists

 - filter already exists and can be replaced, but user asked
   for a protocol change

 - filter doesn't exist

Caller of tcf_chain_tp_insert_unique() doesn't set extack today,
so don't bother plumbing it in.

Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Acked-by: Jamal Hadi Salim <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Paolo Abeni <[email protected]>
net/sched/cls_api.c
This page took 0.054395 seconds and 4 git commands to generate.