Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4b11335 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

pktgen: fix module unload for good



commit c57b5468 (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: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 42ea7d7f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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) {