netfilter: nf_tables: use correct lock to protect gc_list
authorSasha Levin <sashal@kernel.org>
Fri, 22 Sep 2023 17:01:12 +0000 (19:01 +0200)
committerSalvatore Bonaccorso <carnil@debian.org>
Fri, 29 Sep 2023 04:25:15 +0000 (05:25 +0100)
commit 8357bc946a2abc2a10ca40e5a2105d2b4c57515e upstream.

Use nf_tables_gc_list_lock spinlock, not nf_tables_destroy_list_lock to
protect the gc_list.

Fixes: 5f68718b34a5 ("netfilter: nf_tables: GC transaction API to avoid race with control plane")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name netfilter-nf_tables-use-correct-lock-to-protect-gc_l.patch

net/netfilter/nf_tables_api.c

index 1f67931b86d8e224df97e2d01cb5648438775b51..9fc302a6836ba3623bd5f320f595280a16fe214c 100644 (file)
@@ -8065,9 +8065,9 @@ static void nft_trans_gc_work(struct work_struct *work)
        struct nft_trans_gc *trans, *next;
        LIST_HEAD(trans_gc_list);
 
-       spin_lock(&nf_tables_destroy_list_lock);
+       spin_lock(&nf_tables_gc_list_lock);
        list_splice_init(&nf_tables_gc_list, &trans_gc_list);
-       spin_unlock(&nf_tables_destroy_list_lock);
+       spin_unlock(&nf_tables_gc_list_lock);
 
        list_for_each_entry_safe(trans, next, &trans_gc_list, list) {
                list_del(&trans->list);