mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-02 01:06:46 +09:00
pktgen: fix module unload for good
[ Upstream commitd4b1133558] commitc57b546840(pktgen: fix crash at module unload) did a very poor job with list primitives. 1) list_splice() arguments were in the wrong order 2) list_splice(list, head) has undefined behavior if head is not initialized. 3) We should use the list_splice_init() variant to clear pktgen_threads list. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
45d21c1368
commit
a2abc1310f
@@ -3755,13 +3755,13 @@ static void __exit pg_cleanup(void)
|
||||
{
|
||||
struct pktgen_thread *t;
|
||||
struct list_head *q, *n;
|
||||
struct list_head list;
|
||||
LIST_HEAD(list);
|
||||
|
||||
/* Stop all interfaces & threads */
|
||||
pktgen_exiting = true;
|
||||
|
||||
mutex_lock(&pktgen_thread_lock);
|
||||
list_splice(&list, &pktgen_threads);
|
||||
list_splice_init(&pktgen_threads, &list);
|
||||
mutex_unlock(&pktgen_thread_lock);
|
||||
|
||||
list_for_each_safe(q, n, &list) {
|
||||
|
||||
Reference in New Issue
Block a user