]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ice: ptp: don't WARN when controlling PF is unavailable
authorKohei Enju <kohei@enjuk.jp>
Sun, 1 Feb 2026 14:14:00 +0000 (14:14 +0000)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 6 Apr 2026 20:39:23 +0000 (13:39 -0700)
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 <kohei@enjuk.jp>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_ptp.c

index 094e96219f456559fb32162a867d4cdce7686e4d..a3c5f0a5e09b4e9fe800032027936b2bf7183b83 100644 (file)
@@ -3080,7 +3080,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);