On 7/14/2026 1:11 AM, Myeonghun Pak wrote:
idpf_probe() enables PCIe Precision Time Measurement with pci_enable_ptm(pdev, NULL), which programs the PTM control bits and sets pdev->ptm_enabled when the bus/controller supports it. The teardown path in idpf_remove() releases the workqueues, vports, mutexes and the adapter memory but never calls pci_disable_ptm(), so PTM is left enabled on the device after the driver detaches.This leaves the PCI core's software PTM state and the device's PTM control bits set with no bound driver. pcim_enable_device() only arranges for pci_disable_device() on teardown and does not undo the PTM enable, so it is not a substitute here. Pair the enable with pci_disable_ptm(pdev) in idpf_remove(), matching the igc and mlx5 drivers which already disable PTM on their remove paths. Fixes: 8d5e12c5921c ("idpf: add initial PTP support") Co-developed-by: Ijae Kim <[email protected]> Signed-off-by: Ijae Kim <[email protected]> Signed-off-by: Myeonghun Pak <[email protected]> --- drivers/net/ethernet/intel/idpf/idpf_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c index 0dd741dcfc..3d3471d3f7 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_main.c +++ b/drivers/net/ethernet/intel/idpf/idpf_main.c @@ -159,6 +159,7 @@ static void idpf_remove(struct pci_dev *pdev) mutex_destroy(&adapter->queue_lock); mutex_destroy(&adapter->vc_buf_lock);+ pci_disable_ptm(pdev);pci_set_drvdata(pdev, NULL); kfree(adapter); }
Reviewed-by: Emil Tantilov <[email protected]>
