From nobody Thu Sep 19 19:26:36 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF37619AD6E; Tue, 13 Aug 2024 13:34:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723556041; cv=none; b=ayxs3eizMsprGo2apGcbXVCEJFgoJ5XzXojt1NvVAnGZPrFxNheYyCKII/cl6HQI5+mWg2UB7bZcDuzzy8CLkQRZuu44pdoeR0nbl5D3lOGisYAVh6uUliF55N3kqjqF5OEX6BSotEU1g69PraR8PfpvUVBxHkiJ97Du+lQ9RrM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723556041; c=relaxed/simple; bh=YjUeMGxUokPWbR1FpTGedLaSX1C6UavzEGCHc8VtbR0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dwg4VBhmWpv7FFUGNRc7O9HkXiCyN8uTOUtLVFhaav9pj7chKTP6plJR6hHQMaCeaI87AU4FxIXW+lcH42KmPva1HY6fX2gksCuXXuWEegdP0O4+xeYNeivPy/yijRmc8IEL8dy+tmwYqo4gWoKR62bl/K82O4VRjL1p4dQqQf4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q/+VatEt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q/+VatEt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21C13C4AF0B; Tue, 13 Aug 2024 13:33:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1723556041; bh=YjUeMGxUokPWbR1FpTGedLaSX1C6UavzEGCHc8VtbR0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Q/+VatEtPTBjkcOq0MBnr6OXIJnKVOTEx3h+Yq7EBHNuSom/YOwF8j+XP/D2B2ov3 XfuKY2e/uxf16cjp4pksVT+3uipxuLeGmF1WC3+/B+171i4ACPwkdI/oR8/HQvslsb HpyTDZW1mNs0yiSp+BBSoUDTQj32Kwejtn6oepGUzH1XfAjXAR6QOsugLADwacQnIO DcVpPfnpngTQ3YzBG4Aovfiu/yJdr4gaZXlnZPlPKMTEd8akxDOtFBU0ap3/H7QY9v FWWgg16rytcSUqiQT8OF4H7WjK0tqxgI1V5+NEUOVdUuAd/jcoMGT+TYBTSoqG3iCg KBnsuFGpYJhSA== From: Simon Horman Date: Tue, 13 Aug 2024 14:33:47 +0100 Subject: [PATCH net-next v2 1/3] ipv6: Add ipv6_addr_{cpu_to_be32,be32_to_cpu} helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240813-ipv6_addr-helpers-v2-1-5c974f8cca3e@kernel.org> References: <20240813-ipv6_addr-helpers-v2-0-5c974f8cca3e@kernel.org> In-Reply-To: <20240813-ipv6_addr-helpers-v2-0-5c974f8cca3e@kernel.org> To: Andrew Lunn Cc: "David S. Miller" , David Ahern , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Felix Fietkau , Sean Wang , Mark Lee , Lorenzo Bianconi , Matthias Brugger , AngeloGioacchino Del Regno , Yisen Zhuang , Salil Mehta , Jijie Shao , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org X-Mailer: b4 0.14.0 Add helpers to convert an ipv6 addr, expressed as an array of words, from CPU to big-endian byte order, and vice versa. No functional change intended. Compile tested only. Suggested-by: Andrew Lunn Link: https://lore.kernel.org/netdev/c7684349-535c-45a4-9a74-d47479a50020@l= unn.ch/ Reviewed-by: Andrew Lunn Signed-off-by: Simon Horman --- include/net/ipv6.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 88a8e554f7a1..e7113855a10f 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -1365,4 +1365,16 @@ static inline void ip6_sock_set_recvpktinfo(struct s= ock *sk) release_sock(sk); } =20 +#define IPV6_ADDR_WORDS 4 + +static inline void ipv6_addr_cpu_to_be32(__be32 *dst, const u32 *src) +{ + cpu_to_be32_array(dst, src, IPV6_ADDR_WORDS); +} + +static inline void ipv6_addr_be32_to_cpu(u32 *dst, const __be32 *src) +{ + be32_to_cpu_array(dst, src, IPV6_ADDR_WORDS); +} + #endif /* _NET_IPV6_H */ --=20 2.43.0 From nobody Thu Sep 19 19:26:36 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B20719D8A6; Tue, 13 Aug 2024 13:34:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723556046; cv=none; b=d7WnGn/rNo3iDSGjtPxrS/XL99ZO8OfEbmhcm5TZ09P6te7XCdNKXx007db0iEQ5VHb3VFF2dFyXSaIRPbxZ6zZIKWWLU3WatlJkJv12CutlNhM4J4U6ix2xaTbMMFih1spks2yLkrdNNJQiDnuAzj3bBz5AIgJ+3vY3Whs+6uk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723556046; c=relaxed/simple; bh=xSYSi/LZGmEjGZY/ggBNHjYQ1amJc1ZQlnw30K7htBM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fGkBnuBMkzjgy/wR3UuDfMhigRgI0ShOUAKQAjrdkTmrnSPppJx285+ojGjJMaBLGVDke04sNCr/xkUFHBlmndxx6li5lPjfLJCIgzPwkquX/IurEwgrjS/qyEZ4jTiHObdnG7KgyPICIelwJ5aBeNmUW5/7C5/YZw6mJSJi7VE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DnUyD+q3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DnUyD+q3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2DB5C4AF09; Tue, 13 Aug 2024 13:34:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1723556045; bh=xSYSi/LZGmEjGZY/ggBNHjYQ1amJc1ZQlnw30K7htBM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=DnUyD+q3N+qSy+haAEMA9kFq22UFi2GvMboA3J9Poiw7OOO2lPx4h+IYmCDOtuavO +RkR9JaVihYzsJBrid5o7WhtpbU3S6fDBPkSPWPckVJHSZCdUfKJHkhUydiyVaP7Xh I218EHUykPQjw68fmS0G5Qq9PxBhSXZPz7sphw6t0mt9eYon2AtEEawlrYhgrDtHua Q+ZUzXCbEkjQDE+Xm9e417wfrX+16Ibnxhhct8BSKRgZHD/EgYrYa0VuOfVCs/Td5I 78cU0tO+tfiRRCl2fRyvPE6puuLgP0z0nUbzYIec133VhpWUFIaBOCJWd4FlmPelv9 RIEMWRPAYCnaw== From: Simon Horman Date: Tue, 13 Aug 2024 14:33:48 +0100 Subject: [PATCH net-next v2 2/3] net: ethernet: mtk_eth_soc: Use ipv6_addr_{cpu_to_be32,be32_to_cpu} helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240813-ipv6_addr-helpers-v2-2-5c974f8cca3e@kernel.org> References: <20240813-ipv6_addr-helpers-v2-0-5c974f8cca3e@kernel.org> In-Reply-To: <20240813-ipv6_addr-helpers-v2-0-5c974f8cca3e@kernel.org> To: Andrew Lunn Cc: "David S. Miller" , David Ahern , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Felix Fietkau , Sean Wang , Mark Lee , Lorenzo Bianconi , Matthias Brugger , AngeloGioacchino Del Regno , Yisen Zhuang , Salil Mehta , Jijie Shao , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org X-Mailer: b4 0.14.0 Use ipv6_addr_cpu_to_be32 and ipv6_addr_be32_to_cpu helpers to convert address, rather than open coding the conversion. No functional change intended. Compile tested only. Suggested-by: Andrew Lunn Link: https://lore.kernel.org/netdev/c7684349-535c-45a4-9a74-d47479a50020@l= unn.ch/ Reviewed-by: Andrew Lunn Signed-off-by: Simon Horman --- drivers/net/ethernet/mediatek/mtk_ppe.c | 10 +++++----- drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c | 9 +++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet= /mediatek/mtk_ppe.c index 0acee405a749..ada852adc5f7 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c @@ -8,8 +8,11 @@ #include #include #include + #include #include +#include + #include "mtk_eth_soc.h" #include "mtk_ppe.h" #include "mtk_ppe_regs.h" @@ -338,7 +341,6 @@ int mtk_foe_entry_set_ipv6_tuple(struct mtk_eth *eth, { int type =3D mtk_get_ib1_pkt_type(eth, entry->ib1); u32 *src, *dest; - int i; =20 switch (type) { case MTK_PPE_PKT_TYPE_IPV4_DSLITE: @@ -359,10 +361,8 @@ int mtk_foe_entry_set_ipv6_tuple(struct mtk_eth *eth, return -EINVAL; } =20 - for (i =3D 0; i < 4; i++) - src[i] =3D be32_to_cpu(src_addr[i]); - for (i =3D 0; i < 4; i++) - dest[i] =3D be32_to_cpu(dest_addr[i]); + ipv6_addr_be32_to_cpu(src, src_addr); + ipv6_addr_be32_to_cpu(dest, dest_addr); =20 return 0; } diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c b/drivers/net/= ethernet/mediatek/mtk_ppe_debugfs.c index 1a97feca77f2..570ebf91f693 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c @@ -3,6 +3,9 @@ =20 #include #include + +#include + #include "mtk_eth_soc.h" =20 struct mtk_flow_addr_info @@ -47,16 +50,14 @@ static const char *mtk_foe_pkt_type_str(int type) static void mtk_print_addr(struct seq_file *m, u32 *addr, bool ipv6) { - __be32 n_addr[4]; - int i; + __be32 n_addr[IPV6_ADDR_WORDS]; =20 if (!ipv6) { seq_printf(m, "%pI4h", addr); return; } =20 - for (i =3D 0; i < ARRAY_SIZE(n_addr); i++) - n_addr[i] =3D htonl(addr[i]); + ipv6_addr_cpu_to_be32(n_addr, addr); seq_printf(m, "%pI6", n_addr); } =20 --=20 2.43.0 From nobody Thu Sep 19 19:26:36 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D58019DF60; Tue, 13 Aug 2024 13:34:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723556050; cv=none; b=C5r+NhkZmZa5fZzpQqK+LMTsztmiiqwRiIApcALU09n5+nnIQ1QbzK23xAB4Z6AKE3kioFMSso0PZ4hDrrxFI5fzNZQ3imiPYTbGXvqppNBeBSze5rIUPzakRD3s5hSmoj5Yzs8TGOyIBdA7kDpzHozFZ+ktpAHcRvoPfa4XinU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723556050; c=relaxed/simple; bh=N4IAMwyZn68xk4eu3v2PrXkGzwyPHprCfE0DYQKp4KY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sXyz8Rm6V2otcGiLeoMPZiYzfVU7HSc1zAa+D0oBcgWVVTMZaz7hJUuHK7NDRLUF0BNRdiSaem3Au7/5qgkxtndG9wDNAXoh3EJr4EeNXWGTsh8bFtI6gBRx0tSY8g8hunqeB8uLvQGrGBcr6lKOjALIqp3M3gC5q8rAQKBhMq8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SaThYnzj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SaThYnzj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 396BFC4AF13; Tue, 13 Aug 2024 13:34:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1723556050; bh=N4IAMwyZn68xk4eu3v2PrXkGzwyPHprCfE0DYQKp4KY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=SaThYnzjSJGX3z3UEcAaDVFELC5K1rIJ+KeNkJ0sLsO2Vtr0NHk+iaokgDex9MrVw sHCSFtgj44g7uK+MyG65Wq8wPfvxNZN+nWg7R1PCIUKG6hkU4MOZ4a46dNmI8rnLq0 IuRrhEGBLUaGBHAWayrmfeBZCEJWq9cpXoGCZBLiMJlnC0+U4cmZnFfsT+Rjn5YNih 84vqoPkZUUngsedZTo0htunYGzU35JM0HGxnbtKjx34UaH69UKSEwJfjZWOFWxhCGk QpfBsrYIfAXb2nl7ykOMiB1fmH7XfPIXTuUXcRODQy8bwVw8mmfxkcV90WuJlyFPpW K3FuyTRLvyvbw== From: Simon Horman Date: Tue, 13 Aug 2024 14:33:49 +0100 Subject: [PATCH net-next v2 3/3] net: hns3: Use ipv6_addr_{cpu_to_be32,be32_to_cpu} helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240813-ipv6_addr-helpers-v2-3-5c974f8cca3e@kernel.org> References: <20240813-ipv6_addr-helpers-v2-0-5c974f8cca3e@kernel.org> In-Reply-To: <20240813-ipv6_addr-helpers-v2-0-5c974f8cca3e@kernel.org> To: Andrew Lunn Cc: "David S. Miller" , David Ahern , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Felix Fietkau , Sean Wang , Mark Lee , Lorenzo Bianconi , Matthias Brugger , AngeloGioacchino Del Regno , Yisen Zhuang , Salil Mehta , Jijie Shao , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org X-Mailer: b4 0.14.0 Use new ipv6_addr_cpu_to_be32 and ipv6_addr_be32_to_cpu helpers, and IPV6_ADDR_WORDS. This is arguably slightly nicer. No functional change intended. Compile tested only. Suggested-by: Andrew Lunn Link: https://lore.kernel.org/netdev/c7684349-535c-45a4-9a74-d47479a50020@l= unn.ch/ Reviewed-by: Andrew Lunn Reviewed-by: Jijie Shao Signed-off-by: Simon Horman --- .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 79 +++++++++++-------= ---- .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 8 ++- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/driv= ers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index 82574ce0194f..ce629cbc5d01 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -13,8 +13,9 @@ #include #include #include -#include + #include + #include "hclge_cmd.h" #include "hclge_dcb.h" #include "hclge_main.h" @@ -6278,15 +6279,15 @@ static void hclge_fd_get_ip4_tuple(struct ethtool_r= x_flow_spec *fs, static void hclge_fd_get_tcpip6_tuple(struct ethtool_rx_flow_spec *fs, struct hclge_fd_rule *rule, u8 ip_proto) { - be32_to_cpu_array(rule->tuples.src_ip, fs->h_u.tcp_ip6_spec.ip6src, - IPV6_SIZE); - be32_to_cpu_array(rule->tuples_mask.src_ip, fs->m_u.tcp_ip6_spec.ip6src, - IPV6_SIZE); + ipv6_addr_be32_to_cpu(rule->tuples.src_ip, + fs->h_u.tcp_ip6_spec.ip6src); + ipv6_addr_be32_to_cpu(rule->tuples_mask.src_ip, + fs->m_u.tcp_ip6_spec.ip6src); =20 - be32_to_cpu_array(rule->tuples.dst_ip, fs->h_u.tcp_ip6_spec.ip6dst, - IPV6_SIZE); - be32_to_cpu_array(rule->tuples_mask.dst_ip, fs->m_u.tcp_ip6_spec.ip6dst, - IPV6_SIZE); + ipv6_addr_be32_to_cpu(rule->tuples.dst_ip, + fs->h_u.tcp_ip6_spec.ip6dst); + ipv6_addr_be32_to_cpu(rule->tuples_mask.dst_ip, + fs->m_u.tcp_ip6_spec.ip6dst); =20 rule->tuples.src_port =3D be16_to_cpu(fs->h_u.tcp_ip6_spec.psrc); rule->tuples_mask.src_port =3D be16_to_cpu(fs->m_u.tcp_ip6_spec.psrc); @@ -6307,15 +6308,15 @@ static void hclge_fd_get_tcpip6_tuple(struct ethtoo= l_rx_flow_spec *fs, static void hclge_fd_get_ip6_tuple(struct ethtool_rx_flow_spec *fs, struct hclge_fd_rule *rule) { - be32_to_cpu_array(rule->tuples.src_ip, fs->h_u.usr_ip6_spec.ip6src, - IPV6_SIZE); - be32_to_cpu_array(rule->tuples_mask.src_ip, fs->m_u.usr_ip6_spec.ip6src, - IPV6_SIZE); + ipv6_addr_be32_to_cpu(rule->tuples.src_ip, + fs->h_u.usr_ip6_spec.ip6src); + ipv6_addr_be32_to_cpu(rule->tuples_mask.src_ip, + fs->m_u.usr_ip6_spec.ip6src); =20 - be32_to_cpu_array(rule->tuples.dst_ip, fs->h_u.usr_ip6_spec.ip6dst, - IPV6_SIZE); - be32_to_cpu_array(rule->tuples_mask.dst_ip, fs->m_u.usr_ip6_spec.ip6dst, - IPV6_SIZE); + ipv6_addr_be32_to_cpu(rule->tuples.dst_ip, + fs->h_u.usr_ip6_spec.ip6dst); + ipv6_addr_be32_to_cpu(rule->tuples_mask.dst_ip, + fs->m_u.usr_ip6_spec.ip6dst); =20 rule->tuples.ip_proto =3D fs->h_u.usr_ip6_spec.l4_proto; rule->tuples_mask.ip_proto =3D fs->m_u.usr_ip6_spec.l4_proto; @@ -6744,21 +6745,19 @@ static void hclge_fd_get_tcpip6_info(struct hclge_f= d_rule *rule, struct ethtool_tcpip6_spec *spec, struct ethtool_tcpip6_spec *spec_mask) { - cpu_to_be32_array(spec->ip6src, - rule->tuples.src_ip, IPV6_SIZE); - cpu_to_be32_array(spec->ip6dst, - rule->tuples.dst_ip, IPV6_SIZE); + ipv6_addr_cpu_to_be32(spec->ip6src, rule->tuples.src_ip); + ipv6_addr_cpu_to_be32(spec->ip6dst, rule->tuples.dst_ip); if (rule->unused_tuple & BIT(INNER_SRC_IP)) memset(spec_mask->ip6src, 0, sizeof(spec_mask->ip6src)); else - cpu_to_be32_array(spec_mask->ip6src, rule->tuples_mask.src_ip, - IPV6_SIZE); + ipv6_addr_cpu_to_be32(spec_mask->ip6src, + rule->tuples_mask.src_ip); =20 if (rule->unused_tuple & BIT(INNER_DST_IP)) memset(spec_mask->ip6dst, 0, sizeof(spec_mask->ip6dst)); else - cpu_to_be32_array(spec_mask->ip6dst, rule->tuples_mask.dst_ip, - IPV6_SIZE); + ipv6_addr_cpu_to_be32(spec_mask->ip6dst, + rule->tuples_mask.dst_ip); =20 spec->tclass =3D rule->tuples.ip_tos; spec_mask->tclass =3D rule->unused_tuple & BIT(INNER_IP_TOS) ? @@ -6777,19 +6776,19 @@ static void hclge_fd_get_ip6_info(struct hclge_fd_r= ule *rule, struct ethtool_usrip6_spec *spec, struct ethtool_usrip6_spec *spec_mask) { - cpu_to_be32_array(spec->ip6src, rule->tuples.src_ip, IPV6_SIZE); - cpu_to_be32_array(spec->ip6dst, rule->tuples.dst_ip, IPV6_SIZE); + ipv6_addr_cpu_to_be32(spec->ip6src, rule->tuples.src_ip); + ipv6_addr_cpu_to_be32(spec->ip6dst, rule->tuples.dst_ip); if (rule->unused_tuple & BIT(INNER_SRC_IP)) memset(spec_mask->ip6src, 0, sizeof(spec_mask->ip6src)); else - cpu_to_be32_array(spec_mask->ip6src, - rule->tuples_mask.src_ip, IPV6_SIZE); + ipv6_addr_cpu_to_be32(spec_mask->ip6src, + rule->tuples_mask.src_ip); =20 if (rule->unused_tuple & BIT(INNER_DST_IP)) memset(spec_mask->ip6dst, 0, sizeof(spec_mask->ip6dst)); else - cpu_to_be32_array(spec_mask->ip6dst, - rule->tuples_mask.dst_ip, IPV6_SIZE); + ipv6_addr_cpu_to_be32(spec_mask->ip6dst, + rule->tuples_mask.dst_ip); =20 spec->tclass =3D rule->tuples.ip_tos; spec_mask->tclass =3D rule->unused_tuple & BIT(INNER_IP_TOS) ? @@ -7007,7 +7006,7 @@ static void hclge_fd_get_flow_tuples(const struct flo= w_keys *fkeys, } else { int i; =20 - for (i =3D 0; i < IPV6_SIZE; i++) { + for (i =3D 0; i < IPV6_ADDR_WORDS; i++) { tuples->src_ip[i] =3D be32_to_cpu(flow_ip6_src[i]); tuples->dst_ip[i] =3D be32_to_cpu(flow_ip6_dst[i]); } @@ -7262,14 +7261,14 @@ static int hclge_get_cls_key_ip(const struct flow_r= ule *flow, struct flow_match_ipv6_addrs match; =20 flow_rule_match_ipv6_addrs(flow, &match); - be32_to_cpu_array(rule->tuples.src_ip, match.key->src.s6_addr32, - IPV6_SIZE); - be32_to_cpu_array(rule->tuples_mask.src_ip, - match.mask->src.s6_addr32, IPV6_SIZE); - be32_to_cpu_array(rule->tuples.dst_ip, match.key->dst.s6_addr32, - IPV6_SIZE); - be32_to_cpu_array(rule->tuples_mask.dst_ip, - match.mask->dst.s6_addr32, IPV6_SIZE); + ipv6_addr_be32_to_cpu(rule->tuples.src_ip, + match.key->src.s6_addr32); + ipv6_addr_be32_to_cpu(rule->tuples_mask.src_ip, + match.mask->src.s6_addr32); + ipv6_addr_be32_to_cpu(rule->tuples.dst_ip, + match.key->dst.s6_addr32); + ipv6_addr_be32_to_cpu(rule->tuples_mask.dst_ip, + match.mask->dst.s6_addr32); } else { rule->unused_tuple |=3D BIT(INNER_SRC_IP); rule->unused_tuple |=3D BIT(INNER_DST_IP); diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h b/driv= ers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h index b5178b0f88b3..b9fc719880bb 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h @@ -8,7 +8,9 @@ #include #include #include + #include +#include =20 #include "hclge_cmd.h" #include "hclge_ptp.h" @@ -718,15 +720,15 @@ struct hclge_fd_cfg { }; =20 #define IPV4_INDEX 3 -#define IPV6_SIZE 4 + struct hclge_fd_rule_tuples { u8 src_mac[ETH_ALEN]; u8 dst_mac[ETH_ALEN]; /* Be compatible for ip address of both ipv4 and ipv6. * For ipv4 address, we store it in src/dst_ip[3]. */ - u32 src_ip[IPV6_SIZE]; - u32 dst_ip[IPV6_SIZE]; + u32 src_ip[IPV6_ADDR_WORDS]; + u32 dst_ip[IPV6_ADDR_WORDS]; u16 src_port; u16 dst_port; u16 vlan_tag1; --=20 2.43.0