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:
|
||
|---|---|---|
| .. | ||
| xgbe | ||
| 7990.c | ||
| 7990.h | ||
| Kconfig | ||
| Makefile | ||
| a2065.c | ||
| a2065.h | ||
| amd8111e.c | ||
| amd8111e.h | ||
| ariadne.c | ||
| ariadne.h | ||
| atarilance.c | ||
| au1000_eth.c | ||
| au1000_eth.h | ||
| declance.c | ||
| hplance.c | ||
| hplance.h | ||
| lance.c | ||
| mvme147.c | ||
| nmclan_cs.c | ||
| pcnet32.c | ||
| sun3lance.c | ||
| sunlance.c | ||