Subject: Re: [PATCH] net: ethernet: mtk_eth_soc: use be32 type to store be32 values

From: Simon Horman <[email-masked]>
Date: Mon, 3 Apr 2023 14:52:38 +0200

On Sat, Apr 01, 2023 at 05:55:35PM +0200, Andrew Lunn wrote:
> On Sat, Apr 01, 2023 at 08:43:44AM +0200, Simon Horman wrote:
> > Perhaps there is a nicer way to handle this but the code
> > calls for converting an array of host byte order 32bit values
> > to big endian 32bit values: an ipv6 address to be pretty printed.
> 
> Hi Simon
> 
> Maybe make a generic helper? I could be used in other places, e.g:
> 
> https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c#L6773

Hi Andrew,

do you mean something like this?

diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 7332296eca44..cff6c1177502 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -935,6 +935,11 @@ static inline void iph_to_flow_copy_v6addrs(struct flow_keys *flow,
 	flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
 }
 
+static inline void ipv6_addr_cpu_to_be32(__be32 *dst, const u32 *src)
+{
+	cpu_to_be32_array(dst, src, 4);
+}
+
 #if IS_ENABLED(CONFIG_IPV6)
 
 static inline bool ipv6_can_nonlocal_bind(struct net *net,