]> git.itanic.dy.fi Git - linux-stable/commitdiff
ptp: Fix type of mode parameter in ptp_ocp_dpll_mode_get()
authorNathan Chancellor <nathan@kernel.org>
Mon, 2 Oct 2023 20:55:20 +0000 (13:55 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 5 Oct 2023 00:15:04 +0000 (17:15 -0700)
When building with -Wincompatible-function-pointer-types-strict, a
warning designed to catch potential kCFI failures at build time rather
than run time due to incorrect function pointer types, there is a
warning due to a mismatch between the type of the mode parameter in
ptp_ocp_dpll_mode_get() vs. what the function pointer prototype for
->mode_get() in 'struct dpll_device_ops' expects.

  drivers/ptp/ptp_ocp.c:4353:14: error: incompatible function pointer types initializing 'int (*)(const struct dpll_device *, void *, enum dpll_mode *, struct netlink_ext_ack *)' with an expression of type 'int (const struct dpll_device *, void *, u32 *, struct netlink_ext_ack *)' (aka 'int (const struct dpll_device *, void *, unsigned int *, struct netlink_ext_ack *)') [-Werror,-Wincompatible-function-pointer-types-strict]
   4353 |         .mode_get = ptp_ocp_dpll_mode_get,
        |                     ^~~~~~~~~~~~~~~~~~~~~
  1 error generated.

Change the type of the mode parameter in ptp_ocp_dpll_mode_get() to
clear up the warning and avoid kCFI failures at run time.

Fixes: 09eeb3aecc6c ("ptp_ocp: implement DPLL ops")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20231002-net-wifpts-dpll_mode_get-v1-1-a356a16413cf@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/ptp/ptp_ocp.c

index d39afe091a7bcc0a3dfa038d621b1bb194dc5e80..6835ffe88d43b17703e77752c3f5731bbe1f09fd 100644 (file)
@@ -4255,7 +4255,7 @@ static int ptp_ocp_dpll_state_get(const struct dpll_pin *pin, void *pin_priv,
 }
 
 static int ptp_ocp_dpll_mode_get(const struct dpll_device *dpll, void *priv,
-                                u32 *mode, struct netlink_ext_ack *extack)
+                                enum dpll_mode *mode, struct netlink_ext_ack *extack)
 {
        *mode = DPLL_MODE_AUTOMATIC;
        return 0;