rt6_probe_deferred: Do not depend on struct ordering
authorMichael Büsch <m@bues.ch>
Sun, 8 Feb 2015 09:14:07 +0000 (10:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 8 Feb 2015 21:00:43 +0000 (13:00 -0800)
rt6_probe allocates a struct __rt6_probe_work and schedules a work handler rt6_probe_deferred.
But rt6_probe_deferred kfree's the struct work_struct instead of struct __rt6_probe_work.
This works, because struct work_struct is the first element of struct __rt6_probe_work.

Change it to kfree struct __rt6_probe_work to not implicitly depend on
struct work_struct being the first element.

This does not affect the generated code.

Signed-off-by: Michael Buesch <m@bues.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index 7622951e5fbb569cd80a645db80286092815be6f..98565ce0ebcdff78da7c0f0c11737bbb8c2dee59 100644 (file)
@@ -499,7 +499,7 @@ static void rt6_probe_deferred(struct work_struct *w)
        addrconf_addr_solict_mult(&work->target, &mcaddr);
        ndisc_send_ns(work->dev, NULL, &work->target, &mcaddr, NULL);
        dev_put(work->dev);
-       kfree(w);
+       kfree(work);
 }
 
 static void rt6_probe(struct rt6_info *rt)