]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
authorDi Zhu <zhudi21@huawei.com>
Mon, 25 Jan 2021 12:42:29 +0000 (20:42 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Mar 2021 11:20:44 +0000 (12:20 +0100)
[ Upstream commit 275b1e88cabb34dbcbe99756b67e9939d34a99b6 ]

pktgen create threads for all online cpus and bond these threads to
relevant cpu repecivtily. when this thread firstly be woken up, it
will compare cpu currently running with the cpu specified at the time
of creation and if the two cpus are not equal, BUG_ON() will take effect
causing panic on the system.
Notice that these threads could be migrated to other cpus before start
running because of the cpu hotplug after these threads have created. so the
BUG_ON() used here seems unreasonable and we can replace it with WARN_ON()
to just printf a warning other than panic the system.

Signed-off-by: Di Zhu <zhudi21@huawei.com>
Link: https://lore.kernel.org/r/20210125124229.19334-1-zhudi21@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/core/pktgen.c

index cb3b565ff5adca14c1466a622964dc8b50ed1e2c..1d20dd70879bb6e08e40e00c57dc90025c8bb0cd 100644 (file)
@@ -3465,7 +3465,7 @@ static int pktgen_thread_worker(void *arg)
        struct pktgen_dev *pkt_dev = NULL;
        int cpu = t->cpu;
 
-       BUG_ON(smp_processor_id() != cpu);
+       WARN_ON(smp_processor_id() != cpu);
 
        init_waitqueue_head(&t->queue);
        complete(&t->start_done);