> -----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]>