From patchwork Tue Oct 18 13:57:43 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 16743 X-Patchwork-Delegate: sw@simonwunderlich.de 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 0E31683064; Tue, 18 Oct 2016 15:59:03 +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=wkWr2DHS; dkim-adsp=fail (unprotected policy); dkim-atps=neutral Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2001:4d88:2000:7::2; 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 [IPv6:2001:4d88:2000:7::2]) by open-mesh.org (Postfix) with ESMTPS id 4D26983053 for ; Tue, 18 Oct 2016 15:58:06 +0200 (CEST) Received: from sven-desktop.home.narfation.org (p2003007C6F65A2FE1DF6D8826931E1EC.dip0.t-ipconnect.de [IPv6:2003:7c:6f65:a2fe:1df6:d882:6931:e1ec]) by v3-1039.vlinux.de (Postfix) with ESMTPSA id D5C051C8001; Tue, 18 Oct 2016 15:58:05 +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=1476799086; bh=ADNyS/NAdPCY/YPZ0pCE3STVIFidcFAjfezJzCWyqa4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wkWr2DHSDsTZOGIn41kPjaICoMc4XOF7BWPkn4N2BuFMsnH9nCe9MJQr0FKDOkB6n UovnP3fkhJT2ZNMBPdCa1DuSXL1pocliD2aluu5AYGuqO0ghtF7jzdoAAjEgkuDeGJ sarP1xd5SG0HN1u1sCh0ejNKga4uZbwkudBldZ2E= From: Sven Eckelmann To: b.a.t.m.a.n@lists.open-mesh.org Date: Tue, 18 Oct 2016 15:57:43 +0200 Message-Id: <20161018135743.3705-8-sven@narfation.org> X-Mailer: git-send-email 2.9.3 In-Reply-To: <2219629.dYY2ZvZvNG@bentobox> References: <2219629.dYY2ZvZvNG@bentobox> Subject: [B.A.T.M.A.N.] [PATCH v3 8/8] 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 --- v3: - no changes 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