From patchwork Mon Dec 30 14:30:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Lobakin X-Patchwork-Id: 11313231 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3271C13A4 for ; Mon, 30 Dec 2019 14:46:35 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1094920663 for ; Mon, 30 Dec 2019 14:46:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RFyRIENo"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=dlink.ru header.i=@dlink.ru header.b="IVVHVnaM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1094920663 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dlink.ru Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BmZFKrXphRaD99iqG4GTjw5zJooWmHESQzHLVVWZdzA=; b=RFyRIENoy5JNTg onys0CmeI/m59xjObC7AqjHwAFn3FIzK2oDBu8N2wk6fe/P8XFgXAxCaspPFKcLcotIEkM6CsnV/q myzMqOIUUoTjHm7EccfcCpLr5hm8Gumpsv73u49WxnwcjvJg2iE/fRWXZLF6OCuMBq1bn0IKGuoye BPQlUXe1VheXIAQmR4sBD3FfEGjdAPsqyPUQpgq+ndyIogeNt40Q0Z6EEDZpzvW9fIl2E45ZSHXTk ianPlHiY7ltcQ+FhEGryz5IR4qhf3n3gQ/TG/lTraQZ2wqcrxLRZjrLc33JMfTSk6/xUSveozN4Ho 5BTcMLfC/dw5vOeMmEog==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ilwJT-00081N-Ka; Mon, 30 Dec 2019 14:46:31 +0000 Received: from mail.dlink.ru ([178.170.168.18] helo=fd.dlink.ru) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ilwFb-0003xX-1a; Mon, 30 Dec 2019 14:42:34 +0000 Received: by fd.dlink.ru (Postfix, from userid 5000) id 1004F1B218DD; Mon, 30 Dec 2019 17:32:45 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 fd.dlink.ru 1004F1B218DD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dlink.ru; s=mail; t=1577716367; bh=E3wS4CWwlylImJof0eomCAHaPV4aLBnqVAQ7xnSqdyA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=IVVHVnaM/RM+UDv2UYa/dQtQ/GFA+1urOJh+VXrWV/uPNbowe6Rt8I20pPuEXrap7 jcLdLQhThhhNiI6Y4YNa/SkZSscpCdqfuECR6wfrGmlcyzKINgSQ2ZkDCWae8ZBJmc 7MgLJuXdK6F1c+t21rbp5crN4fJC1WbW5PFw5aKo= X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.dlink.ru X-Spam-Level: X-Spam-Status: No, score=-99.2 required=7.5 tests=BAYES_50,URIBL_BLOCKED, USER_IN_WHITELIST autolearn=disabled version=3.4.2 Received: from mail.rzn.dlink.ru (mail.rzn.dlink.ru [178.170.168.13]) by fd.dlink.ru (Postfix) with ESMTP id 70CB51B21845; Mon, 30 Dec 2019 17:31:37 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 fd.dlink.ru 70CB51B21845 Received: from mail.rzn.dlink.ru (localhost [127.0.0.1]) by mail.rzn.dlink.ru (Postfix) with ESMTP id 4683B1B229D0; Mon, 30 Dec 2019 17:31:35 +0300 (MSK) Received: from localhost.localdomain (unknown [196.196.203.126]) by mail.rzn.dlink.ru (Postfix) with ESMTPA; Mon, 30 Dec 2019 17:31:35 +0300 (MSK) From: Alexander Lobakin To: "David S. Miller" Subject: [PATCH RFC net-next 17/19] net: dsa: tag_qca: switch to bitfield helpers Date: Mon, 30 Dec 2019 17:30:25 +0300 Message-Id: <20191230143028.27313-18-alobakin@dlink.ru> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191230143028.27313-1-alobakin@dlink.ru> References: <20191230143028.27313-1-alobakin@dlink.ru> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191230_064231_456137_E394F5E0 X-CRM114-Status: GOOD ( 11.09 ) X-Spam-Score: 2.4 (++) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (2.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [178.170.168.18 listed in list.dnswl.org] 2.6 RCVD_IN_SBL RBL: Received via a relay in Spamhaus SBL [196.196.203.126 listed in zen.spamhaus.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Lunn , Song Liu , Jakub Kicinski , Alexander Lobakin , Yoshiki Komachi , linux-kernel@vger.kernel.org, Eric Dumazet , Stanislav Fomichev , Matteo Croce , Edward Cree , Florian Fainelli , Jakub Sitnicki , Daniel Borkmann , Paolo Abeni , Vivien Didelot , Hauke Mehrtens , Sean Wang , Jiri Pirko , linux-mediatek@lists.infradead.org, Matthias Brugger , linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, Paul Blakey , Stephen Hemminger , Taehee Yoo Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org Make code look cleaner and more readable by using bitfield macros. Misc: fix several macro identation and phdr type in qca_tag_xmit(). Signed-off-by: Alexander Lobakin --- net/dsa/tag_qca.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c index e1c4dd04734a..8939abce36d7 100644 --- a/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c @@ -3,15 +3,15 @@ * Copyright (c) 2015, The Linux Foundation. All rights reserved. */ +#include #include #include "dsa_priv.h" -#define QCA_HDR_LEN 2 -#define QCA_HDR_VERSION 0x2 +#define QCA_HDR_LEN 2 +#define QCA_HDR_VERSION 0x2 -#define QCA_HDR_RECV_VERSION_MASK GENMASK(15, 14) -#define QCA_HDR_RECV_VERSION_S 14 +#define QCA_HDR_RECV_VERSION(tag) FIELD_GET(GENMASK(15, 14), tag) #define QCA_HDR_RECV_PRIORITY_MASK GENMASK(13, 11) #define QCA_HDR_RECV_PRIORITY_S 11 #define QCA_HDR_RECV_TYPE_MASK GENMASK(10, 6) @@ -19,19 +19,20 @@ #define QCA_HDR_RECV_FRAME_IS_TAGGED BIT(3) #define QCA_HDR_RECV_SOURCE_PORT_MASK GENMASK(2, 0) -#define QCA_HDR_XMIT_VERSION_MASK GENMASK(15, 14) -#define QCA_HDR_XMIT_VERSION_S 14 +#define QCA_HDR_XMIT_VERSION FIELD_PREP(GENMASK(15, 14), \ + QCA_HDR_VERSION) #define QCA_HDR_XMIT_PRIORITY_MASK GENMASK(13, 11) #define QCA_HDR_XMIT_PRIORITY_S 11 #define QCA_HDR_XMIT_CONTROL_MASK GENMASK(10, 8) #define QCA_HDR_XMIT_CONTROL_S 8 #define QCA_HDR_XMIT_FROM_CPU BIT(7) -#define QCA_HDR_XMIT_DP_BIT_MASK GENMASK(6, 0) +#define QCA_HDR_XMIT_DP(port) FIELD_PREP(GENMASK(6, 0), BIT(port)) static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) { - struct dsa_port *dp = dsa_slave_to_port(dev); - u16 *phdr, hdr; + const struct dsa_port *dp = dsa_slave_to_port(dev); + __be16 *phdr; + u16 hdr; if (skb_cow_head(skb, 0) < 0) return NULL; @@ -39,11 +40,11 @@ static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) skb_push(skb, QCA_HDR_LEN); memmove(skb->data, skb->data + QCA_HDR_LEN, 2 * ETH_ALEN); - phdr = (u16 *)(skb->data + 2 * ETH_ALEN); + phdr = (__be16 *)(skb->data + 2 * ETH_ALEN); /* Set the version field, and set destination port information */ - hdr = QCA_HDR_VERSION << QCA_HDR_XMIT_VERSION_S | - QCA_HDR_XMIT_FROM_CPU | BIT(dp->index); + hdr = QCA_HDR_XMIT_VERSION | QCA_HDR_XMIT_FROM_CPU | + QCA_HDR_XMIT_DP(dp->index); *phdr = htons(hdr); @@ -53,7 +54,6 @@ static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt) { - u8 ver; int port; __be16 *phdr, hdr; @@ -68,8 +68,7 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev, hdr = ntohs(*phdr); /* Make sure the version is correct */ - ver = (hdr & QCA_HDR_RECV_VERSION_MASK) >> QCA_HDR_RECV_VERSION_S; - if (unlikely(ver != QCA_HDR_VERSION)) + if (unlikely(QCA_HDR_RECV_VERSION(hdr) != QCA_HDR_VERSION)) return NULL; /* Remove QCA tag and recalculate checksum */