]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Apr 2026 11:30:39 +0000 (13:30 +0200)
[ Upstream commit bb3f21edc7056cdf44a7f7bd7ba65af40741838c ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/ice/ice_ptp.c

index 2726830014762540201a10c58b9e91589fca09e4..082313023024cc5a2aca93feb6102e4f7d9ee08a 100644 (file)
@@ -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);