batman-adv: backport eth_hdr() compat fix to avoid kernel oops

Message ID 1391352791-19305-1-git-send-email-mareklindner@neomailbox.ch (mailing list archive)
State Accepted, archived
Commit b921e8f70aa929766856decfe79ee8e78ba21e23
Headers

Commit Message

Marek Lindner Feb. 2, 2014, 2:53 p.m. UTC
  From: Linus Lüssing <linus.luessing@web.de>

Introduced by 41b38727749a94c1a65cf0f4be9bfe1cbaf0adeb
   ("batman-adv: fix potential kernel paging error for unicast transmissions")

Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
CC: Linus Lüssing <linus.luessing@web.de>
---
 compat.h | 11 +++++++++++
 1 file changed, 11 insertions(+)
  

Comments

Marek Lindner Feb. 8, 2014, 1:14 p.m. UTC | #1
On Sunday 02 February 2014 22:53:11 Marek Lindner wrote:
> From: Linus Lüssing <linus.luessing@web.de>
> 
> Introduced by 41b38727749a94c1a65cf0f4be9bfe1cbaf0adeb
>    ("batman-adv: fix potential kernel paging error for unicast
> transmissions")
> 
> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
> CC: Linus Lüssing <linus.luessing@web.de>
> ---
>  compat.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)

Applied in revision b921e8f.

Thanks,
Marek
  

Patch

diff --git a/compat.h b/compat.h
index a4ab202..deea92b 100644
--- a/compat.h
+++ b/compat.h
@@ -289,6 +289,17 @@  static int batadv_interface_set_mac_addr(struct net_device *dev, void *p) \
 }\
 static int __batadv_interface_set_mac_addr(x, y)
 
+#define batadv_interface_tx(x, y) \
+__batadv_interface_tx(struct sk_buff *skb, struct net_device *soft_iface); \
+static int batadv_interface_tx(struct sk_buff *skb, \
+			       struct net_device *soft_iface) \
+{ \
+	skb_reset_mac_header(skb); \
+	return __batadv_interface_tx(skb, soft_iface); \
+} \
+static int __batadv_interface_tx(struct sk_buff *skb, \
+				 struct net_device *soft_iface)
+
 #define netdev_master_upper_dev_link netdev_set_master
 #define netdev_upper_dev_unlink(slave, master) netdev_set_master(slave, NULL)
 #define netdev_master_upper_dev_get(dev) \