Message ID | 20240111162432.124014-1-dmantipov@yandex.ru (mailing list archive) |
---|---|
State | Accepted |
Commit | cbdd50ec8b1daef6d71fb3325e436c8dec2d2e15 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: liquidio: fix clang-specific W=1 build warnings | expand |
On Thu, Jan 11, 2024 at 07:24:29PM +0300, Dmitry Antipov wrote: > When compiling with clang-18 and W=1, I've noticed the following > warnings: > > drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:1493:16: warning: cast > from 'void (*)(struct octeon_device *, struct octeon_mbox_cmd *, void *)' to > 'octeon_mbox_callback_t' (aka 'void (*)(void *, void *, void *)') converts to > incompatible function type [-Wcast-function-type-strict] > 1493 | mbox_cmd.fn = (octeon_mbox_callback_t)cn23xx_get_vf_stats_callback; > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > and: > > drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:432:16: warning: cast > from 'void (*)(struct octeon_device *, struct octeon_mbox_cmd *, void *)' to > 'octeon_mbox_callback_t' (aka 'void (*)(void *, void *, void *)') converts to > incompatible function type [-Wcast-function-type-strict] > 432 | mbox_cmd.fn = (octeon_mbox_callback_t)octeon_pfvf_hs_callback; > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Fix both of the above by adjusting 'octeon_mbox_callback_t' to match actual > callback definitions (at the cost of adding an extra forward declaration). > > Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> I'm not entirely sure changes line this are appropriate for an orphaned driver [1]. But if so, these look good to me. Reviewed-by: Simon Horman <horms@kernel.org> [1] MAINTAINERS: eth: mark Cavium liquidio as an Orphan https://git.kernel.org/netdev/net/c/384a35866f3a
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Thu, 11 Jan 2024 19:24:29 +0300 you wrote: > When compiling with clang-18 and W=1, I've noticed the following > warnings: > > drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:1493:16: warning: cast > from 'void (*)(struct octeon_device *, struct octeon_mbox_cmd *, void *)' to > 'octeon_mbox_callback_t' (aka 'void (*)(void *, void *, void *)') converts to > incompatible function type [-Wcast-function-type-strict] > 1493 | mbox_cmd.fn = (octeon_mbox_callback_t)cn23xx_get_vf_stats_callback; > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > [...] Here is the summary with links: - net: liquidio: fix clang-specific W=1 build warnings https://git.kernel.org/netdev/net/c/cbdd50ec8b1d You are awesome, thank you!
diff --git a/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c b/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c index 068ed52b66c9..b3c81a2e9d46 100644 --- a/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c +++ b/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c @@ -1490,7 +1490,7 @@ int cn23xx_get_vf_stats(struct octeon_device *oct, int vfidx, mbox_cmd.q_no = vfidx * oct->sriov_info.rings_per_vf; mbox_cmd.recv_len = 0; mbox_cmd.recv_status = 0; - mbox_cmd.fn = (octeon_mbox_callback_t)cn23xx_get_vf_stats_callback; + mbox_cmd.fn = cn23xx_get_vf_stats_callback; ctx.stats = stats; atomic_set(&ctx.status, 0); mbox_cmd.fn_arg = (void *)&ctx; diff --git a/drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c b/drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c index dd5d80fee24f..d2fcb3da484e 100644 --- a/drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c +++ b/drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c @@ -429,7 +429,7 @@ int cn23xx_octeon_pfvf_handshake(struct octeon_device *oct) mbox_cmd.q_no = 0; mbox_cmd.recv_len = 0; mbox_cmd.recv_status = 0; - mbox_cmd.fn = (octeon_mbox_callback_t)octeon_pfvf_hs_callback; + mbox_cmd.fn = octeon_pfvf_hs_callback; mbox_cmd.fn_arg = &status; octeon_mbox_write(oct, &mbox_cmd); diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h b/drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h index d92bd7e16477..9ac85d22c615 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h @@ -57,7 +57,10 @@ union octeon_mbox_message { } s; }; -typedef void (*octeon_mbox_callback_t)(void *, void *, void *); +struct octeon_mbox_cmd; + +typedef void (*octeon_mbox_callback_t)(struct octeon_device *, + struct octeon_mbox_cmd *, void *); struct octeon_mbox_cmd { union octeon_mbox_message msg;
When compiling with clang-18 and W=1, I've noticed the following warnings: drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:1493:16: warning: cast from 'void (*)(struct octeon_device *, struct octeon_mbox_cmd *, void *)' to 'octeon_mbox_callback_t' (aka 'void (*)(void *, void *, void *)') converts to incompatible function type [-Wcast-function-type-strict] 1493 | mbox_cmd.fn = (octeon_mbox_callback_t)cn23xx_get_vf_stats_callback; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ and: drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:432:16: warning: cast from 'void (*)(struct octeon_device *, struct octeon_mbox_cmd *, void *)' to 'octeon_mbox_callback_t' (aka 'void (*)(void *, void *, void *)') converts to incompatible function type [-Wcast-function-type-strict] 432 | mbox_cmd.fn = (octeon_mbox_callback_t)octeon_pfvf_hs_callback; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fix both of the above by adjusting 'octeon_mbox_callback_t' to match actual callback definitions (at the cost of adding an extra forward declaration). Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> --- drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c | 2 +- drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c | 2 +- drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-)