Browse files

pktgen: fix module unload for good

commit d4b1133 upstream.

commit c57b546 (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

3) We should use the list_splice_init() variant to clear pktgen_threads

Signed-off-by: Eric Dumazet <>
Signed-off-by: David S. Miller <>
Signed-off-by: Ben Hutchings <>
  • Loading branch information...
Eric Dumazet authored and koenkooi committed May 17, 2012
1 parent 20e6560 commit a93901d13f1a476b6d132c63c474816200f5070c
Showing with 2 additions and 2 deletions.
  1. +2 −2 net/core/pktgen.c
@@ -3758,13 +3758,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;
- list_splice(&list, &pktgen_threads);
+ list_splice_init(&pktgen_threads, &list);
list_for_each_safe(q, n, &list) {

0 comments on commit a93901d

Please sign in to comment.