[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<PAXPR04MB85100950621F48B6D4520114884A2@PAXPR04MB8510.eurprd04.prod.outlook.com>
Date: Mon, 28 Oct 2024 09:23:08 +0000
From: Wei Fang <wei.fang@....com>
To: "davem@...emloft.net" <davem@...emloft.net>, "edumazet@...gle.com"
<edumazet@...gle.com>, "kuba@...nel.org" <kuba@...nel.org>,
"pabeni@...hat.com" <pabeni@...hat.com>, "andrew+netdev@...n.ch"
<andrew+netdev@...n.ch>, Claudiu Manoil <claudiu.manoil@....com>, Vladimir
Oltean <vladimir.oltean@....com>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"imx@...ts.linux.dev" <imx@...ts.linux.dev>
Subject: RE: [PATCH net] net: enetc: set MAC address to the VF net_device
> -----Original Message-----
> From: Wei Fang
> Sent: 2024年10月28日 17:08
> To: davem@...emloft.net; edumazet@...gle.com; kuba@...nel.org;
> pabeni@...hat.com; andrew+netdev@...n.ch; Claudiu Manoil
> <claudiu.manoil@....com>; Vladimir Oltean <vladimir.oltean@....com>
> Cc: netdev@...r.kernel.org; linux-kernel@...r.kernel.org; imx@...ts.linux.dev
> Subject: [PATCH net] net: enetc: set MAC address to the VF net_device
>
> The MAC address of VF can be configured through the mailbox mechanism of
> ENETC, but the previous implementation forgot to set the MAC address in
> net_device, resulting in the SMAC of the sent frames still being the old
> MAC address. Since the MAC address in the hardware has been changed, Rx
> cannot receive frames with the DMAC address as the new MAC address. The
> most obvious phenomenon is that after changing the MAC address, we can
> see that the MAC address of eno0vf0 has not changed through the "ifconfig
> eno0vf0" commandand the IP address cannot be obtained .
^^^^
Sorry, there is missing a space. I'll fix it in v2.
>
> root@...028ardb:~# ifconfig eno0vf0 down
> root@...028ardb:~# ifconfig eno0vf0 hw ether 00:04:9f:3a:4d:56 up
> root@...028ardb:~# ifconfig eno0vf0
> eno0vf0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
> ether 66:36:2c:3b:87:76 txqueuelen 1000 (Ethernet)
> RX packets 794 bytes 69239 (69.2 KB)
> RX errors 0 dropped 0 overruns 0 frame 0
> TX packets 11 bytes 2226 (2.2 KB)
> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
>
> Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support")
> Signed-off-by: Wei Fang <wei.fang@....com>
> ---
> drivers/net/ethernet/freescale/enetc/enetc_vf.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c
> b/drivers/net/ethernet/freescale/enetc/enetc_vf.c
> index dfcaac302e24..b15db70769e5 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c
> @@ -78,11 +78,18 @@ static int enetc_vf_set_mac_addr(struct net_device
> *ndev, void *addr)
> {
> struct enetc_ndev_priv *priv = netdev_priv(ndev);
> struct sockaddr *saddr = addr;
> + int err;
>
> if (!is_valid_ether_addr(saddr->sa_data))
> return -EADDRNOTAVAIL;
>
> - return enetc_msg_vsi_set_primary_mac_addr(priv, saddr);
> + err = enetc_msg_vsi_set_primary_mac_addr(priv, saddr);
> + if (err)
> + return err;
> +
> + eth_hw_addr_set(ndev, saddr->sa_data);
> +
> + return 0;
> }
>
> static int enetc_vf_set_features(struct net_device *ndev,
> --
> 2.34.1
Powered by blists - more mailing lists