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)
committerJakub Kicinski <kuba@kernel.org>
Wed, 21 Oct 2020 04:00:52 +0000 (21:00 -0700)
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>
net/sched/cls_api.c

index 41a55c6..faeabff 100644 (file)
@@ -3712,7 +3712,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;