diff options
author | Guillaume Nault <gnault@redhat.com> | 2020-10-20 17:34:31 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2020-10-20 21:00:52 -0700 |
commit | b130762161374b1ef31549bef8ebd4abeb998d94 (patch) | |
tree | 8e06cdf1e3b46284c2102ad9cd92c790429ee66f /net | |
parent | d978d6d008fa7a90a435ba7f101dfcbcc1c816a9 (diff) | |
download | linux-b130762161374b1ef31549bef8ebd4abeb998d94.tar.gz linux-b130762161374b1ef31549bef8ebd4abeb998d94.tar.bz2 linux-b130762161374b1ef31549bef8ebd4abeb998d94.zip |
net/sched: act_gate: Unlock ->tcfa_lock in tc_setup_flow_action()
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/sched/cls_api.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 41a55c6cbeb8..faeabff283a2 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -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; |