Message ID | 20150208101407.517bcfa7@wiggum |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Michael Büsch <m@bues.ch> Date: Sun, 8 Feb 2015 10:14:07 +0100 > 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> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Index: linux/net/ipv6/route.c =================================================================== --- linux.orig/net/ipv6/route.c +++ linux/net/ipv6/route.c @@ -499,7 +499,7 @@ static void rt6_probe_deferred(struct wo 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)
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> --- The affected code was introduced in c2f17e827b419918c856131f592df9521e1a38e3