Message ID | 20230418-dwmac-meson8b-clk-cb-cast-v1-1-e892b670cbbb@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 43bb6100d8d5871d211196034042308c1b1d69c3 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: stmmac: dwmac-meson8b: Avoid cast to incompatible function type | expand |
On Tue, Apr 18, 2023 at 4:07 AM Simon Horman <horms@kernel.org> wrote: > > Rather than casting clk_disable_unprepare to an incompatible function > type provide a trivial wrapper with the correct signature for the > use-case. > > Reported by clang-16 with W=1: > > drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c:276:6: error: cast from 'void (*)(struct clk *)' to 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict] > (void(*)(void *))clk_disable_unprepare, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > No functional change intended. > Compile tested only. > > Signed-off-by: Simon Horman <horms@kernel.org> Thanks for the patch! Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c > index e8b507f88fbc..f6754e3643f3 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c > @@ -263,6 +263,11 @@ static int meson_axg_set_phy_mode(struct meson8b_dwmac *dwmac) > return 0; > } > > +static void meson8b_clk_disable_unprepare(void *data) > +{ > + clk_disable_unprepare(data); > +} > + > static int meson8b_devm_clk_prepare_enable(struct meson8b_dwmac *dwmac, > struct clk *clk) > { > @@ -273,8 +278,7 @@ static int meson8b_devm_clk_prepare_enable(struct meson8b_dwmac *dwmac, > return ret; > > return devm_add_action_or_reset(dwmac->dev, > - (void(*)(void *))clk_disable_unprepare, > - clk); > + meson8b_clk_disable_unprepare, clk); > } > > static int meson8b_init_rgmii_delays(struct meson8b_dwmac *dwmac) >
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 18 Apr 2023 13:07:33 +0200 you wrote: > Rather than casting clk_disable_unprepare to an incompatible function > type provide a trivial wrapper with the correct signature for the > use-case. > > Reported by clang-16 with W=1: > > drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c:276:6: error: cast from 'void (*)(struct clk *)' to 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict] > (void(*)(void *))clk_disable_unprepare, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > No functional change intended. > Compile tested only. > > [...] Here is the summary with links: - [net-next] net: stmmac: dwmac-meson8b: Avoid cast to incompatible function type https://git.kernel.org/netdev/net-next/c/43bb6100d8d5 You are awesome, thank you!
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c index e8b507f88fbc..f6754e3643f3 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c @@ -263,6 +263,11 @@ static int meson_axg_set_phy_mode(struct meson8b_dwmac *dwmac) return 0; } +static void meson8b_clk_disable_unprepare(void *data) +{ + clk_disable_unprepare(data); +} + static int meson8b_devm_clk_prepare_enable(struct meson8b_dwmac *dwmac, struct clk *clk) { @@ -273,8 +278,7 @@ static int meson8b_devm_clk_prepare_enable(struct meson8b_dwmac *dwmac, return ret; return devm_add_action_or_reset(dwmac->dev, - (void(*)(void *))clk_disable_unprepare, - clk); + meson8b_clk_disable_unprepare, clk); } static int meson8b_init_rgmii_delays(struct meson8b_dwmac *dwmac)
Rather than casting clk_disable_unprepare to an incompatible function type provide a trivial wrapper with the correct signature for the use-case. Reported by clang-16 with W=1: drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c:276:6: error: cast from 'void (*)(struct clk *)' to 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict] (void(*)(void *))clk_disable_unprepare, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No functional change intended. Compile tested only. Signed-off-by: Simon Horman <horms@kernel.org> --- drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)