* [PATCH net-next] net: netcp: ethss: Fix type of first parameter in hwtstamp stubs
@ 2025-11-08 3:19 Nathan Chancellor
2025-11-08 12:43 ` Vadim Fedorenko
0 siblings, 1 reply; 2+ messages in thread
From: Nathan Chancellor @ 2025-11-08 3:19 UTC (permalink / raw)
To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni
Cc: Nick Desaulniers, Bill Wendling, Justin Stitt, Vadim Fedorenko,
Kory Maincent, netdev, llvm, patches, Nathan Chancellor
When building with -Wincompatible-function-pointer-types-strict, a
warning designed to catch control flow integrity violations at compile
time, there are several instances in netcp_ethss.c when CONFIG_TI_CPTS
is not set:
drivers/net/ethernet/ti/netcp_ethss.c:3831:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *)' [-Wincompatible-function-pointer-types-strict]
3831 | .hwtstamp_get = gbe_hwtstamp_get,
| ^~~~~~~~~~~~~~~~
drivers/net/ethernet/ti/netcp_ethss.c:3832:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' [-Wincompatible-function-pointer-types-strict]
3832 | .hwtstamp_set = gbe_hwtstamp_set,
| ^~~~~~~~~~~~~~~~
drivers/net/ethernet/ti/netcp_ethss.c:3850:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *)' [-Wincompatible-function-pointer-types-strict]
3850 | .hwtstamp_get = gbe_hwtstamp_get,
| ^~~~~~~~~~~~~~~~
drivers/net/ethernet/ti/netcp_ethss.c:3851:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' [-Wincompatible-function-pointer-types-strict]
3851 | .hwtstamp_set = gbe_hwtstamp_set,
| ^~~~~~~~~~~~~~~~
While 'void *' and 'struct gbe_intf *' are ABI compatible, hence no
regular warning from -Wincompatible-function-pointer-types, the mismatch
will trigger a kCFI violation when gbe_hwtstamp_get() or
gbe_hwtstamp_set() are called indirectly. The types were updated for the
CONFIG_TI_CPTS=y implementations but not the CONFIG_TI_CPTS=n ones.
Update the type of the first parameter in the CONFIG_TI_CPTS=n stubs to
resolve the warning/CFI violation.
Fixes: 3f02b8272557 ("ti: netcp: convert to ndo_hwtstamp callbacks")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
drivers/net/ethernet/ti/netcp_ethss.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
index 0ae44112812c..4f6cc6cd1f03 100644
--- a/drivers/net/ethernet/ti/netcp_ethss.c
+++ b/drivers/net/ethernet/ti/netcp_ethss.c
@@ -2755,13 +2755,13 @@ static inline void gbe_unregister_cpts(struct gbe_priv *gbe_dev)
{
}
-static inline int gbe_hwtstamp_get(struct gbe_intf *gbe_intf,
+static inline int gbe_hwtstamp_get(void *intf_priv,
struct kernel_hwtstamp_config *cfg)
{
return -EOPNOTSUPP;
}
-static inline int gbe_hwtstamp_set(struct gbe_intf *gbe_intf,
+static inline int gbe_hwtstamp_set(void *intf_priv,
struct kernel_hwtstamp_config *cfg,
struct netlink_ext_ack *extack)
{
---
base-commit: 01c87d7f48b4f9b8be0950ed4de5d345632bd564
change-id: 20251107-netcp_ethss-fix-cpts-stubs-clang-wifpts-df78ff1d4a7b
Best regards,
--
Nathan Chancellor <nathan@kernel.org>
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH net-next] net: netcp: ethss: Fix type of first parameter in hwtstamp stubs
2025-11-08 3:19 [PATCH net-next] net: netcp: ethss: Fix type of first parameter in hwtstamp stubs Nathan Chancellor
@ 2025-11-08 12:43 ` Vadim Fedorenko
0 siblings, 0 replies; 2+ messages in thread
From: Vadim Fedorenko @ 2025-11-08 12:43 UTC (permalink / raw)
To: Nathan Chancellor, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni
Cc: Nick Desaulniers, Bill Wendling, Justin Stitt, Kory Maincent,
netdev, llvm, patches
On 08/11/2025 03:19, Nathan Chancellor wrote:
> When building with -Wincompatible-function-pointer-types-strict, a
> warning designed to catch control flow integrity violations at compile
> time, there are several instances in netcp_ethss.c when CONFIG_TI_CPTS
> is not set:
>
> drivers/net/ethernet/ti/netcp_ethss.c:3831:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *)' [-Wincompatible-function-pointer-types-strict]
> 3831 | .hwtstamp_get = gbe_hwtstamp_get,
> | ^~~~~~~~~~~~~~~~
> drivers/net/ethernet/ti/netcp_ethss.c:3832:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' [-Wincompatible-function-pointer-types-strict]
> 3832 | .hwtstamp_set = gbe_hwtstamp_set,
> | ^~~~~~~~~~~~~~~~
> drivers/net/ethernet/ti/netcp_ethss.c:3850:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *)' [-Wincompatible-function-pointer-types-strict]
> 3850 | .hwtstamp_get = gbe_hwtstamp_get,
> | ^~~~~~~~~~~~~~~~
> drivers/net/ethernet/ti/netcp_ethss.c:3851:18: warning: incompatible function pointer types initializing 'int (*)(void *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' with an expression of type 'int (struct gbe_intf *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *)' [-Wincompatible-function-pointer-types-strict]
> 3851 | .hwtstamp_set = gbe_hwtstamp_set,
> | ^~~~~~~~~~~~~~~~
>
> While 'void *' and 'struct gbe_intf *' are ABI compatible, hence no
> regular warning from -Wincompatible-function-pointer-types, the mismatch
> will trigger a kCFI violation when gbe_hwtstamp_get() or
> gbe_hwtstamp_set() are called indirectly. The types were updated for the
> CONFIG_TI_CPTS=y implementations but not the CONFIG_TI_CPTS=n ones.
>
> Update the type of the first parameter in the CONFIG_TI_CPTS=n stubs to
> resolve the warning/CFI violation.
>
> Fixes: 3f02b8272557 ("ti: netcp: convert to ndo_hwtstamp callbacks")
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> ---
> drivers/net/ethernet/ti/netcp_ethss.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
> index 0ae44112812c..4f6cc6cd1f03 100644
> --- a/drivers/net/ethernet/ti/netcp_ethss.c
> +++ b/drivers/net/ethernet/ti/netcp_ethss.c
> @@ -2755,13 +2755,13 @@ static inline void gbe_unregister_cpts(struct gbe_priv *gbe_dev)
> {
> }
>
> -static inline int gbe_hwtstamp_get(struct gbe_intf *gbe_intf,
> +static inline int gbe_hwtstamp_get(void *intf_priv,
> struct kernel_hwtstamp_config *cfg)
> {
> return -EOPNOTSUPP;
> }
>
> -static inline int gbe_hwtstamp_set(struct gbe_intf *gbe_intf,
> +static inline int gbe_hwtstamp_set(void *intf_priv,
> struct kernel_hwtstamp_config *cfg,
> struct netlink_ext_ack *extack)
> {
>
Fair, netcp_module expects 'void *' type of the first parameter.
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-11-08 12:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-08 3:19 [PATCH net-next] net: netcp: ethss: Fix type of first parameter in hwtstamp stubs Nathan Chancellor
2025-11-08 12:43 ` Vadim Fedorenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).