Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2194300/?format=api
{ "id": 2194300, "url": "http://patchwork.ozlabs.org/api/patches/2194300/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260208110054.2525262-1-syoshida@redhat.com/", "project": { "id": 26, "url": "http://patchwork.ozlabs.org/api/projects/26/?format=api", "name": "Netfilter Development", "link_name": "netfilter-devel", "list_id": "netfilter-devel.vger.kernel.org", "list_email": "netfilter-devel@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260208110054.2525262-1-syoshida@redhat.com>", "list_archive_url": null, "date": "2026-02-08T11:00:50", "name": "[net] net: flow_offload: protect driver_block_list in flow_block_cb_setup_simple()", "commit_ref": null, "pull_url": null, "state": "handled-elsewhere", "archived": true, "hash": "d47b3a21ce2755aba9d8460011ff60d15dbe2186", "submitter": { "id": 85152, "url": "http://patchwork.ozlabs.org/api/people/85152/?format=api", "name": "Shigeru Yoshida", "email": "syoshida@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260208110054.2525262-1-syoshida@redhat.com/mbox/", "series": [ { "id": 491418, "url": "http://patchwork.ozlabs.org/api/series/491418/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=491418", "date": "2026-02-08T11:00:50", "name": "[net] net: flow_offload: protect driver_block_list in flow_block_cb_setup_simple()", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491418/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2194300/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2194300/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <netfilter-devel+bounces-10706-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "netfilter-devel@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=S8ViZ8wY;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=YndmM42O;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-10706-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=\"S8ViZ8wY\";\n\tdkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=\"YndmM42O\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=170.10.129.124", "smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=redhat.com" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f84dq4Sfdz1xtV\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 08 Feb 2026 22:01:51 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 5D6243010D86\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 8 Feb 2026 11:01:33 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 55F89346AD1;\n\tSun, 8 Feb 2026 11:01:32 +0000 (UTC)", "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id AF5352F49F4\n\tfor <netfilter-devel@vger.kernel.org>; Sun, 8 Feb 2026 11:01:31 +0000 (UTC)", "from mail-pl1-f199.google.com (mail-pl1-f199.google.com\n [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-297-ELWUWH4XMdeUpZpV9qinCg-1; Sun, 08 Feb 2026 06:01:29 -0500", "by mail-pl1-f199.google.com with SMTP id\n d9443c01a7336-2a75ed2f89dso20535845ad.1\n for <netfilter-devel@vger.kernel.org>;\n Sun, 08 Feb 2026 03:01:29 -0800 (PST)", "from kernel-devel.tail62cea.ts.net\n ([240d:1a:c0d:9f00:be24:11ff:fe35:71b3])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2a951a638b5sm92796505ad.11.2026.02.08.03.01.23\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 08 Feb 2026 03:01:25 -0800 (PST)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770548491; cv=none;\n b=B+Y2TAiHR4FYMppO8vcvyrzktwGT/t8XHUjdXC7ClrZ9u0GXX4xKBmOrbSQGDblhfl186m7cRJ32MX3pV0zPWkt1gTGuE0pSCBjzOuEtIJ5DiuZcucWB/+fgNvOIEue3aS78fDxsMpJEnP90ma/h48C1DmEcUm3kEnHBPI5x+8E=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770548491; c=relaxed/simple;\n\tbh=OUr0/EjBwKUIq9wjaQQSTfUmconlBsUbiqw3HhthXB0=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=QSUhBsbP61ZAaSVfo2BMK9auQQdEygWZ28HJGZQU81sYbygzMKbGwbccjp26h33slMa8w36pe704POrgM8EVjIxGAhu+PDebgacgJ3yViKEWAbEOA1G2fyekg6mqBG8t+1iQdv4FIRPu6qO5TN8zjLWxh1HANOXiPSqrbTvd4O8=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com;\n spf=pass smtp.mailfrom=redhat.com;\n dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=S8ViZ8wY;\n dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=YndmM42O; arc=none smtp.client-ip=170.10.129.124", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1770548491;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:\n\t content-transfer-encoding:content-transfer-encoding;\n\tbh=2399lSML0+N3Gvm8VDP9m3yONrvPxPlMoYg9untbM60=;\n\tb=S8ViZ8wYmdN+hErAcfUYqRRHlUl9OKNDJpTQVzRv8qn1XNJOPlM5kmQgN5w+XSMNo4i4Ui\n\tASnbHX0OfW9AzZ1xhw767trOPf8oksKgK7x20y1MJDQFfpaEG0UeY6O9oaQIFVnUFRCD58\n\tYxZYvARO3N0PrFmBsQUtOQ/vMbL82WI=", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1770548486; x=1771153286;\n darn=vger.kernel.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=2399lSML0+N3Gvm8VDP9m3yONrvPxPlMoYg9untbM60=;\n b=YndmM42ONeEvHU4fMdkFa/H0cDz2uLPFLfs8yDIEIRcWL9Y8G6CiEoGPg0pX/pGJoe\n B9n6RQVhSHjcaE9Vb/Phu/A3vke5bCMIQYIrGnE1GLZTdVUo2Ejf3RMuN/wy+XIvEQ9H\n EZ9xI6KOrmI+7qlOxPIBzTO8cT+GFT4bPt47cI0EUjkxLLFc+61u+cZLF0+NDyJRWjTC\n chT2HGAcnDNtMImdoODhdc5ZoarYgCV+q0f4bWVI6rykAdKeuzSUHyvoM9SujnAhlV08\n K1/J4z5J9WJP8Ae8QOizsfulp8jFTM9FIkIUYIE0kC+nVQESHdzK/w+8pt4SzrB33LhD\n yXdg==" ], "X-MC-Unique": "ELWUWH4XMdeUpZpV9qinCg-1", "X-Mimecast-MFC-AGG-ID": "ELWUWH4XMdeUpZpV9qinCg_1770548489", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770548486; x=1771153286;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=2399lSML0+N3Gvm8VDP9m3yONrvPxPlMoYg9untbM60=;\n b=Gp1GtAZvm3pPiGfZDBXrLiQtN++fjoXZKaGT5cWJv6xeKN1tp+1yG3pwIm+okp9ySC\n qLeOZhh2nxBE2jib67XKOz89GpJmReQyJCdsWe+qSxYf7DLVR1Zmq54lJGiuq3w5X16A\n uXfFSORzomjOOpYxPUEngf0SxPtasYeZCO6GrVuzJjZcZCuHAgyImGsIkx6DIw6ZlZVw\n ut1VL+iRNknnXgMF0AihwllbF5z1KKsM8+iWxUqOkqr5x8xJk1MygGZmUuDXjvbxxPtM\n QMpXhznMGJWIo7X3CTZjUMN4tC1VGeK8dtwiPAsm9Bykjxc3khpfWB6e8xkh79s9XZ+i\n Hpug==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCVGVzu0W0/Sv2eJvENsw9aOISvxmkLD8KWWrIc7CdIjH42MXe/h1byorutiWrBYsaiA5l6SJqGqps6UmokMZSs=@vger.kernel.org", "X-Gm-Message-State": "AOJu0YxmN/aviykeX9Pe8tiI+6YzebpsOt40yRtkv5VQ93Z2ZlkczB82\n\tu28DTNfkYX4WK7gZS3ABqiRbAQLTOIQgmFrphTw1rzff2rUN1/V3xxvU1jJBuU1ZuuRIQXG5Oh0\n\tL2aHYGw9dPBCq2usPuEq8UBENP3zbSKeWRci/W7t/FeNHwYOF4C+zioscm4FMDkHOs+inMQ==", "X-Gm-Gg": "AZuq6aJnRZnueMGrHK1+vgaNMHS6FgNh4hAfSDNjLJ3N6Dg6mnAtInQ3ijfp6BSW7yy\n\tSEhH/dYGA2n9nJwVUk/K4ZNXUWTO0L9GhJWvHEQSTJVCl3UoUMAnGrK+RoGmE3PtI2xlx0rViOh\n\tXS2+LNCX2SIrdFt0SxvdPVD0Jdcxzr+UcaHZwFOGwGHqk7u/7zJrtyDUXUcZCs/QsMWJD6JMHf1\n\t7tGCbOSL550ZOaqnHVyj2+NZsxDr5yHFMUXRrJRhLBtoda7NogNZSLWfnqPu+QVsrkygL91mK6m\n\taLe0iggFzLQck0dVCDOqLgdMWnbZ9BXOw1Oc3/eh1SmohwZRLMqZE9fPfSr180sA8ESeKBlVM6+\n\tADbZ/7Aih/pcZJdW0p8971awSVCA0qtgT/Q==", "X-Received": [ "by 2002:a17:902:cf0a:b0:2a8:ff32:5f96 with SMTP id\n d9443c01a7336-2a95165a927mr76312255ad.13.1770548486256;\n Sun, 08 Feb 2026 03:01:26 -0800 (PST)", "by 2002:a17:902:cf0a:b0:2a8:ff32:5f96 with SMTP id\n d9443c01a7336-2a95165a927mr76312055ad.13.1770548485801;\n Sun, 08 Feb 2026 03:01:25 -0800 (PST)" ], "From": "Shigeru Yoshida <syoshida@redhat.com>", "To": "\"David S. Miller\" <davem@davemloft.net>,\n\tEric Dumazet <edumazet@google.com>,\n\tJakub Kicinski <kuba@kernel.org>,\n\tPaolo Abeni <pabeni@redhat.com>,\n\tSimon Horman <horms@kernel.org>,\n\tPablo Neira Ayuso <pablo@netfilter.org>,\n\tFlorian Westphal <fw@strlen.de>,\n\tPhil Sutter <phil@nwl.cc>,\n\tShigeru Yoshida <syoshida@redhat.com>", "Cc": "syzbot+5a66db916cdde0dbcc1c@syzkaller.appspotmail.com,\n\tnetdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tnetfilter-devel@vger.kernel.org,\n\tcoreteam@netfilter.org", "Subject": "[PATCH net] net: flow_offload: protect driver_block_list in\n flow_block_cb_setup_simple()", "Date": "Sun, 8 Feb 2026 20:00:50 +0900", "Message-ID": "<20260208110054.2525262-1-syoshida@redhat.com>", "X-Mailer": "git-send-email 2.52.0", "Precedence": "bulk", "X-Mailing-List": "netfilter-devel@vger.kernel.org", "List-Id": "<netfilter-devel.vger.kernel.org>", "List-Subscribe": "<mailto:netfilter-devel+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:netfilter-devel+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit" }, "content": "syzbot reported a list_del corruption in flow_block_cb_setup_simple(). [0]\n\nflow_block_cb_setup_simple() accesses the driver_block_list (e.g.,\nnetdevsim's nsim_block_cb_list) without any synchronization. The\nnftables offload path calls into this function via ndo_setup_tc while\nholding the per-netns commit_mutex, but this mutex does not prevent\nconcurrent access from tasks in different network namespaces that\nshare the same driver_block_list, leading to list corruption:\n\n- Task A (FLOW_BLOCK_BIND) calls list_add_tail() to insert a new\n flow_block_cb into driver_block_list.\n\n- Task B (FLOW_BLOCK_UNBIND) concurrently calls list_del() on another\n flow_block_cb from the same list.\n\n- The concurrent modifications corrupt the list pointers.\n\nFix this by adding a static mutex (flow_block_cb_list_lock) that\nprotects all driver_block_list operations within\nflow_block_cb_setup_simple(). Also add a flow_block_cb_remove_driver()\nhelper for external callers that need to remove a block_cb from the\ndriver list under the same lock, and convert nft_indr_block_cleanup()\nto use it.\n\n[0]:\nlist_del corruption. prev->next should be ffff888028878200, but was ffffffff8e940fc0. (prev=ffffffff8e940fc0)\n------------[ cut here ]------------\nkernel BUG at lib/list_debug.c:64!\nOops: invalid opcode: 0000 [#1] SMP KASAN PTI\nCPU: 1 UID: 0 PID: 6308 Comm: syz.3.231 Not tainted syzkaller #0 PREEMPT(full)\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025\nRIP: 0010:__list_del_entry_valid_or_report+0x15a/0x190 lib/list_debug.c:62\n[...]\nCall Trace:\n <TASK>\n __list_del_entry_valid include/linux/list.h:124 [inline]\n __list_del_entry include/linux/list.h:215 [inline]\n list_del include/linux/list.h:229 [inline]\n flow_block_cb_setup_simple+0x62d/0x740 net/core/flow_offload.c:369\n nft_block_offload_cmd net/netfilter/nf_tables_offload.c:397 [inline]\n nft_chain_offload_cmd+0x293/0x660 net/netfilter/nf_tables_offload.c:451\n nft_flow_block_chain net/netfilter/nf_tables_offload.c:471 [inline]\n nft_flow_offload_chain net/netfilter/nf_tables_offload.c:513 [inline]\n nft_flow_rule_offload_commit+0x40d/0x1b60 net/netfilter/nf_tables_offload.c:592\n nf_tables_commit+0x675/0x8710 net/netfilter/nf_tables_api.c:10925\n nfnetlink_rcv_batch net/netfilter/nfnetlink.c:576 [inline]\n nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:649 [inline]\n nfnetlink_rcv+0x1ac9/0x2590 net/netfilter/nfnetlink.c:667\n netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]\n netlink_unicast+0x82c/0x9e0 net/netlink/af_netlink.c:1346\n netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896\n sock_sendmsg_nosec net/socket.c:727 [inline]\n __sock_sendmsg+0x219/0x270 net/socket.c:742\n ____sys_sendmsg+0x505/0x830 net/socket.c:2630\n ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2684\n __sys_sendmsg net/socket.c:2716 [inline]\n __do_sys_sendmsg net/socket.c:2721 [inline]\n __se_sys_sendmsg net/socket.c:2719 [inline]\n __x64_sys_sendmsg+0x19b/0x260 net/socket.c:2719\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nFixes: 955bcb6ea0df (\"drivers: net: use flow block API\")\nReported-by: syzbot+5a66db916cdde0dbcc1c@syzkaller.appspotmail.com\nCloses: https://syzkaller.appspot.com/bug?extid=5a66db916cdde0dbcc1c\nTested-by: syzbot+5a66db916cdde0dbcc1c@syzkaller.appspotmail.com\nSigned-off-by: Shigeru Yoshida <syoshida@redhat.com>\n---\n include/net/flow_offload.h | 2 ++\n net/core/flow_offload.c | 41 ++++++++++++++++++++++++-------\n net/netfilter/nf_tables_offload.c | 2 +-\n 3 files changed, 35 insertions(+), 10 deletions(-)", "diff": "diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h\nindex 596ab9791e4d..ff6d2bcb2cca 100644\n--- a/include/net/flow_offload.h\n+++ b/include/net/flow_offload.h\n@@ -673,6 +673,8 @@ int flow_block_cb_setup_simple(struct flow_block_offload *f,\n \t\t\t flow_setup_cb_t *cb,\n \t\t\t void *cb_ident, void *cb_priv, bool ingress_only);\n \n+void flow_block_cb_remove_driver(struct flow_block_cb *block_cb);\n+\n enum flow_cls_command {\n \tFLOW_CLS_REPLACE,\n \tFLOW_CLS_DESTROY,\ndiff --git a/net/core/flow_offload.c b/net/core/flow_offload.c\nindex bc5169482710..137a44af5e1c 100644\n--- a/net/core/flow_offload.c\n+++ b/net/core/flow_offload.c\n@@ -334,6 +334,8 @@ bool flow_block_cb_is_busy(flow_setup_cb_t *cb, void *cb_ident,\n }\n EXPORT_SYMBOL(flow_block_cb_is_busy);\n \n+static DEFINE_MUTEX(flow_block_cb_list_lock);\n+\n int flow_block_cb_setup_simple(struct flow_block_offload *f,\n \t\t\t struct list_head *driver_block_list,\n \t\t\t flow_setup_cb_t *cb,\n@@ -341,6 +343,7 @@ int flow_block_cb_setup_simple(struct flow_block_offload *f,\n \t\t\t bool ingress_only)\n {\n \tstruct flow_block_cb *block_cb;\n+\tint err = 0;\n \n \tif (ingress_only &&\n \t f->binder_type != FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS)\n@@ -348,32 +351,52 @@ int flow_block_cb_setup_simple(struct flow_block_offload *f,\n \n \tf->driver_block_list = driver_block_list;\n \n+\tmutex_lock(&flow_block_cb_list_lock);\n+\n \tswitch (f->command) {\n \tcase FLOW_BLOCK_BIND:\n-\t\tif (flow_block_cb_is_busy(cb, cb_ident, driver_block_list))\n-\t\t\treturn -EBUSY;\n+\t\tif (flow_block_cb_is_busy(cb, cb_ident, driver_block_list)) {\n+\t\t\terr = -EBUSY;\n+\t\t\tbreak;\n+\t\t}\n \n \t\tblock_cb = flow_block_cb_alloc(cb, cb_ident, cb_priv, NULL);\n-\t\tif (IS_ERR(block_cb))\n-\t\t\treturn PTR_ERR(block_cb);\n+\t\tif (IS_ERR(block_cb)) {\n+\t\t\terr = PTR_ERR(block_cb);\n+\t\t\tbreak;\n+\t\t}\n \n \t\tflow_block_cb_add(block_cb, f);\n \t\tlist_add_tail(&block_cb->driver_list, driver_block_list);\n-\t\treturn 0;\n+\t\tbreak;\n \tcase FLOW_BLOCK_UNBIND:\n \t\tblock_cb = flow_block_cb_lookup(f->block, cb, cb_ident);\n-\t\tif (!block_cb)\n-\t\t\treturn -ENOENT;\n+\t\tif (!block_cb) {\n+\t\t\terr = -ENOENT;\n+\t\t\tbreak;\n+\t\t}\n \n \t\tflow_block_cb_remove(block_cb, f);\n \t\tlist_del(&block_cb->driver_list);\n-\t\treturn 0;\n+\t\tbreak;\n \tdefault:\n-\t\treturn -EOPNOTSUPP;\n+\t\terr = -EOPNOTSUPP;\n+\t\tbreak;\n \t}\n+\n+\tmutex_unlock(&flow_block_cb_list_lock);\n+\treturn err;\n }\n EXPORT_SYMBOL(flow_block_cb_setup_simple);\n \n+void flow_block_cb_remove_driver(struct flow_block_cb *block_cb)\n+{\n+\tmutex_lock(&flow_block_cb_list_lock);\n+\tlist_del(&block_cb->driver_list);\n+\tmutex_unlock(&flow_block_cb_list_lock);\n+}\n+EXPORT_SYMBOL(flow_block_cb_remove_driver);\n+\n static DEFINE_MUTEX(flow_indr_block_lock);\n static LIST_HEAD(flow_block_indr_list);\n static LIST_HEAD(flow_block_indr_dev_list);\ndiff --git a/net/netfilter/nf_tables_offload.c b/net/netfilter/nf_tables_offload.c\nindex fd30e205de84..d60838bceafb 100644\n--- a/net/netfilter/nf_tables_offload.c\n+++ b/net/netfilter/nf_tables_offload.c\n@@ -414,7 +414,7 @@ static void nft_indr_block_cleanup(struct flow_block_cb *block_cb)\n \t\t\t\t basechain, &extack);\n \tnft_net = nft_pernet(net);\n \tmutex_lock(&nft_net->commit_mutex);\n-\tlist_del(&block_cb->driver_list);\n+\tflow_block_cb_remove_driver(block_cb);\n \tlist_move(&block_cb->list, &bo.cb_list);\n \tnft_flow_offload_unbind(&bo, basechain);\n \tmutex_unlock(&nft_net->commit_mutex);\n", "prefixes": [ "net" ] }