From patchwork Sun Oct 9 06:57:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 16734 X-Patchwork-Delegate: mareklindner@neomailbox.ch Return-Path: X-Original-To: patchwork@open-mesh.org Delivered-To: patchwork@open-mesh.org Received: from open-mesh.org (localhost [IPv6:::1]) by open-mesh.org (Postfix) with ESMTP id D0E36825C9; Sun, 9 Oct 2016 08:59:17 +0200 (CEST) Authentication-Results: open-mesh.org; dmarc=none header.from=narfation.org Authentication-Results: open-mesh.org; dkim=fail reason="verification failed; unprotected key" header.d=narfation.org header.i=@narfation.org header.b=KZWgfn//; dkim-adsp=fail (unprotected policy); dkim-atps=neutral Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=79.140.41.39; helo=v3-1039.vlinux.de; envelope-from=sven@narfation.org; receiver=b.a.t.m.a.n@lists.open-mesh.org Authentication-Results: open-mesh.org; dmarc=pass header.from=narfation.org Received: from v3-1039.vlinux.de (narfation.org [79.140.41.39]) by open-mesh.org (Postfix) with ESMTPS id 6C89B8244F for ; Sun, 9 Oct 2016 08:58:07 +0200 (CEST) Received: from sven-desktop.home.narfation.org (p200300C593CA60F90000000000002E17.dip0.t-ipconnect.de [IPv6:2003:c5:93ca:60f9::2e17]) by v3-1039.vlinux.de (Postfix) with ESMTPSA id C47041100A9 for ; Sun, 9 Oct 2016 08:58:06 +0200 (CEST) Authentication-Results: v3-1039.vlinux.de; dmarc=none header.from=narfation.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=narfation.org; s=20121; t=1475996286; bh=oeLHSWY6KpH8GjHHS4wVyCyfZso4APKPWtV2EFYZ8jA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=KZWgfn//biFhvAWtgCsOcXT4VDVdaMvGKHSw6J2aeyYfOAvRNY5wMRQeqHYDZAnHs RpXaNJI1JV3cjSjDvYpVSDB/xLaGDwVAV2RqILji7lqD/5vXTaFxmHbh0VxY3Jn3Mb MXaK4wvmJZnquRi/UqtMPxhgeMIaIXA1cfXRRZrk= From: Sven Eckelmann To: b.a.t.m.a.n@lists.open-mesh.org Date: Sun, 9 Oct 2016 08:57:38 +0200 Message-Id: <20161009065738.8279-11-sven@narfation.org> X-Mailer: git-send-email 2.9.3 In-Reply-To: <1647833.jYley1tZnH@sven-edge> References: <1647833.jYley1tZnH@sven-edge> Subject: [B.A.T.M.A.N.] [PATCH v2 11/11] batman-adv: compat: Move vid api wrapper to coccinelle X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking Errors-To: b.a.t.m.a.n-bounces@lists.open-mesh.org Sender: "B.A.T.M.A.N" Signed-off-by: Sven Eckelmann --- v2: - new patch --- compat-include/linux/netdevice.h | 6 +++ compat-patches/0005-vid-callbacks.cocci | 74 +++++++++++++++++++++++++++++++++ compat.h | 54 ------------------------ 3 files changed, 80 insertions(+), 54 deletions(-) create mode 100644 compat-patches/0005-vid-callbacks.cocci diff --git a/compat-include/linux/netdevice.h b/compat-include/linux/netdevice.h index fb5b519..0de9d78 100644 --- a/compat-include/linux/netdevice.h +++ b/compat-include/linux/netdevice.h @@ -28,6 +28,12 @@ #include +#define __vid_api_returntype void + +#else + +#define __vid_api_returntype int + #endif /* < KERNEL_VERSION(3, 3, 0) */ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0) diff --git a/compat-patches/0005-vid-callbacks.cocci b/compat-patches/0005-vid-callbacks.cocci new file mode 100644 index 0000000..2cebc0e --- /dev/null +++ b/compat-patches/0005-vid-callbacks.cocci @@ -0,0 +1,74 @@ +@ add_assignment @ +identifier batadv_interface_add_vid, batadv_netdev_ops; +@@ + + struct net_device_ops batadv_netdev_ops = { + .ndo_vlan_rx_add_vid = batadv_interface_add_vid, + }; + +@ kill_assignment @ +identifier batadv_interface_kill_vid, batadv_netdev_ops; +@@ + + struct net_device_ops batadv_netdev_ops = { + .ndo_vlan_rx_kill_vid = batadv_interface_kill_vid, + }; + +@ add_vid @ +identifier add_assignment.batadv_interface_add_vid; +type be16; +identifier dev, proto, vid; +@@ + +-batadv_interface_add_vid ++batadv_interface_add_vid_orig + (struct net_device *dev, be16 proto, + unsigned short vid) + { ... } + ++static __vid_api_returntype batadv_interface_add_vid(struct net_device *dev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) ++ be16 proto, ++#endif ++ unsigned short vid) ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) ++ be16 proto = htons(ETH_P_8021Q); ++#endif ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) ++ batadv_interface_add_vid_orig(dev, proto, vid); ++#else ++ return batadv_interface_add_vid_orig(dev, proto, vid); ++#endif ++} + + +@ kill_vid @ +identifier kill_assignment.batadv_interface_kill_vid; +type be16; +identifier dev, proto, vid; +@@ + +-batadv_interface_kill_vid ++batadv_interface_kill_vid_orig + (struct net_device *dev, be16 proto, + unsigned short vid) + { ... } + ++static __vid_api_returntype batadv_interface_kill_vid(struct net_device *dev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) ++ be16 proto, ++#endif ++ unsigned short vid) ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) ++ be16 proto = htons(ETH_P_8021Q); ++#endif ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) ++ batadv_interface_kill_vid_orig(dev, proto, vid); ++#else ++ return batadv_interface_kill_vid_orig(dev, proto, vid); ++#endif ++} diff --git a/compat.h b/compat.h index 2865eeb..d59fb5f 100644 --- a/compat.h +++ b/compat.h @@ -42,31 +42,6 @@ #endif /* < KERNEL_VERSION(3, 9, 0) */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) - -#define batadv_interface_add_vid(x, y, z) \ -__batadv_interface_add_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid);\ -static void batadv_interface_add_vid(struct net_device *dev, unsigned short vid)\ -{\ - __batadv_interface_add_vid(dev, htons(ETH_P_8021Q), vid);\ -}\ -static int __batadv_interface_add_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid) - -#define batadv_interface_kill_vid(x, y, z) \ -__batadv_interface_kill_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid);\ -static void batadv_interface_kill_vid(struct net_device *dev,\ - unsigned short vid)\ -{\ - __batadv_interface_kill_vid(dev, htons(ETH_P_8021Q), vid);\ -}\ -static int __batadv_interface_kill_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid) - -#endif /* < KERNEL_VERSION(3, 3, 0) */ - #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0) #define batadv_interface_set_mac_addr(x, y) \ @@ -95,35 +70,6 @@ static int __batadv_interface_tx(struct sk_buff *skb, \ #endif /* < KERNEL_VERSION(3, 9, 0) */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0) - -#define batadv_interface_add_vid(x, y, z) \ -__batadv_interface_add_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid);\ -static int batadv_interface_add_vid(struct net_device *dev, unsigned short vid)\ -{\ - return __batadv_interface_add_vid(dev, htons(ETH_P_8021Q), vid);\ -}\ -static int __batadv_interface_add_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid) - -#define batadv_interface_kill_vid(x, y, z) \ -__batadv_interface_kill_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid);\ -static int batadv_interface_kill_vid(struct net_device *dev,\ - unsigned short vid)\ -{\ - return __batadv_interface_kill_vid(dev, htons(ETH_P_8021Q), vid);\ -}\ -static int __batadv_interface_kill_vid(struct net_device *dev, __be16 proto,\ - unsigned short vid) - -#endif /* >= KERNEL_VERSION(3, 3, 0) */ - -#endif /* < KERNEL_VERSION(3, 10, 0) */ - #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0) /* the expected behaviour of this function is to return 0 on success, therefore