diff mbox

rt6_probe_deferred: Do not depend on struct ordering

Message ID 20150208101407.517bcfa7@wiggum
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Michael Büsch Feb. 8, 2015, 9:14 a.m. UTC
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

Comments

David Miller Feb. 8, 2015, 9:03 p.m. UTC | #1
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
diff mbox

Patch

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)