Re: [PATCH] amd-xgbe: fix mismatched prototype

From: Simon Horman
Date: Sat Feb 04 2023 - 08:19:07 EST


On Fri, Feb 03, 2023 at 01:15:36PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> The forward declaration was introduced with a prototype that does
> not match the function definition:
>
> drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c:2166:13: error: conflicting types for 'xgbe_phy_perform_ratechange' due to enum/integer mismatch; have 'void(struct xgbe_prv_data *, enum xgbe_mb_cmd, enum xgbe_mb_subcmd)' [-Werror=enum-int-mismatch]
> 2166 | static void xgbe_phy_perform_ratechange(struct xgbe_prv_data *pdata,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c:391:13: note: previous declaration of 'xgbe_phy_perform_ratechange' with type 'void(struct xgbe_prv_data *, unsigned int, unsigned int)'
> 391 | static void xgbe_phy_perform_ratechange(struct xgbe_prv_data *pdata,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Ideally there should not be any forward declarations here, which
> would make it easier to show that there is no unbounded recursion.
> I tried fixing this but could not figure out how to avoid the
> recursive call.
>
> As a hotfix, address only the broken prototype to fix the build
> problem instead.
>
> Fixes: 4f3b20bfbb75 ("amd-xgbe: add support for rx-adaptation")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Reviewed-by: Simon Horman <simon.horman@xxxxxxxxxxxx>