]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/sched: act_gate: Unlock ->tcfa_lock in tc_setup_flow_action()
authorGuillaume Nault <gnault@redhat.com>
Tue, 20 Oct 2020 15:34:31 +0000 (17:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 09:07:08 +0000 (10:07 +0100)
[ Upstream commit b130762161374b1ef31549bef8ebd4abeb998d94 ]

We need to jump to the "err_out_locked" label when
tcf_gate_get_entries() fails. Otherwise, tc_setup_flow_action() exits
with ->tcfa_lock still held.

Fixes: d29bdd69ecdd ("net: schedule: add action gate offloading")
Signed-off-by: Guillaume Nault <gnault@redhat.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Link: https://lore.kernel.org/r/12f60e385584c52c22863701c0185e40ab08a7a7.1603207948.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sched/cls_api.c

index 4619cb3cb0a8f51f04e008bb1cbdd25934bc0c06..8bf6bde1cfe5973d29202b7cf249508a8e3fd905 100644 (file)
@@ -3707,7 +3707,7 @@ int tc_setup_flow_action(struct flow_action *flow_action,
                        entry->gate.num_entries = tcf_gate_num_entries(act);
                        err = tcf_gate_get_entries(entry, act);
                        if (err)
-                               goto err_out;
+                               goto err_out_locked;
                } else {
                        err = -EOPNOTSUPP;
                        goto err_out_locked;