> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Kohei Enju
> Sent: Sunday, February 1, 2026 3:14 PM
> To: [email protected]; [email protected]
> Cc: Nguyen, Anthony L <[email protected]>; Kitszel,
> Przemyslaw <[email protected]>; Andrew Lunn
> <[email protected]>; David S. Miller <[email protected]>; Eric
> Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo
> Abeni <[email protected]>; Richard Cochran <[email protected]>;
> Temerkhanov, Sergey <[email protected]>; Simon Horman
> <[email protected]>; [email protected]; Kohei Enju <[email protected]>
> Subject: [Intel-wired-lan] [PATCH v1 iwl-net] ice: ptp: don't WARN
> when controlling PF is unavailable
> 
> In VFIO passthrough setups, it is possible to pass through only a PF
> which doesn't own the source timer. In that case the PTP controlling
> PF
> (adapter->ctrl_pf) is never initialized in the VM, so
> ice_get_ctrl_ptp() returns NULL and triggers WARN_ON() in
> ice_ptp_setup_pf().
> 
> Since this is an expected behavior in that configuration, replace
> WARN_ON() with an informational message and return -EOPNOTSUPP.
> 
> Fixes: e800654e85b5 ("ice: Use ice_adapter for PTP shared data instead
> of auxdev")
> Signed-off-by: Kohei Enju <[email protected]>
> ---
>  drivers/net/ethernet/intel/ice/ice_ptp.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c
> b/drivers/net/ethernet/intel/ice/ice_ptp.c
> index 272683001476..082313023024 100644
> --- a/drivers/net/ethernet/intel/ice/ice_ptp.c
> +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
> @@ -3048,7 +3048,13 @@ static int ice_ptp_setup_pf(struct ice_pf *pf)
>       struct ice_ptp *ctrl_ptp = ice_get_ctrl_ptp(pf);
>       struct ice_ptp *ptp = &pf->ptp;
> 
> -     if (WARN_ON(!ctrl_ptp) || pf->hw.mac_type == ICE_MAC_UNKNOWN)
> +     if (!ctrl_ptp) {
> +             dev_info(ice_pf_to_dev(pf),
> +                      "PTP unavailable: no controlling PF\n");
> +             return -EOPNOTSUPP;
> +     }
> +
> +     if (pf->hw.mac_type == ICE_MAC_UNKNOWN)
>               return -ENODEV;
> 
>       INIT_LIST_HEAD(&ptp->port.list_node);
> --
> 2.51.0

Reviewed-by: Aleksandr Loktionov <[email protected]>

Reply via email to