Subject: Re: [PATCH net-next v3 1/2] net: stmmac: Refactor VLAN implementation

From: Simon Horman <[email-masked]>
Date: Fri, 11 Apr 2025 17:36:02 +0100

On Tue, Apr 08, 2025 at 04:13:53PM +0800, Boon Khai Ng wrote:
> Refactor VLAN implementation by moving common code for DWMAC4 and
> DWXGMAC IPs into a separate VLAN module. VLAN implementation for
> DWMAC4 and DWXGMAC differs only for CSR base address, the descriptor
> for the VLAN ID and VLAN VALID bit field.
> 
> Signed-off-by: Boon Khai Ng <[email-masked]>
> Reviewed-by: Matthew Gerlach <[email-masked]>

...

> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c

...

> @@ -965,45 +807,6 @@ static void dwmac4_set_mac_loopback(void __iomem *ioaddr, bool enable)
>  	writel(value, ioaddr + GMAC_CONFIG);
>  }
>  
> -static void dwmac4_update_vlan_hash(struct mac_device_info *hw, u32 hash,
> -				    u16 perfect_match, bool is_double)

...

> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
> index a6d395c6bacd..d9f41c047e5e 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
> @@ -614,76 +614,6 @@ static int dwxgmac2_rss_configure(struct mac_device_info *hw,
>  	return 0;
>  }
>  
> -static void dwxgmac2_update_vlan_hash(struct mac_device_info *hw, u32 hash,
> -				      u16 perfect_match, bool is_double)

...

> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.c

...

> +static void vlan_update_hash(struct mac_device_info *hw, u32 hash,
> +			     __le16 perfect_match, bool is_double)

...

Hi,

The signature of this new function does not appear to match that of the
functions it replaces. And it appears to regress the endian annotation of
perfect_match which was corrected in commit e9dbebae2e3c ("net: stmmac:
Correct byte order of perfect_match")

Flagged by Sparse.