* [PATCH v3 net] idpf: disable PTM on probe failure and on remove
@ 2026-07-20 14:35 ` Myeonghun Pak
0 siblings, 0 replies; 6+ messages in thread
From: Myeonghun Pak @ 2026-07-20 14:35 UTC (permalink / raw)
To: Tony Nguyen, Przemek Kitszel, intel-wired-lan
Cc: Milena Olech, Emil Tantilov, Mina Almasry, Andrew Lunn,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, linux-kernel, Myeonghun Pak, Ijae Kim
idpf_probe() enables PCIe Precision Time Measurement with
pci_enable_ptm(), which takes a reference on the device and on every
PTM-capable device up the path to the PTM Root.
Neither the probe error path nor idpf_remove() drops that reference, so
the PTM enable counts of this device and of its upstream path stay
elevated with no bound driver, and the device's PTM control bits remain
set. pcim_enable_device() only arranges for pci_disable_device() and
does not undo the PTM enable.
Add the matching pci_disable_ptm() to the common probe unwind and to
idpf_remove(). pci_enable_ptm() failure is not fatal here, so guard both
calls with pcie_ptm_enabled(): pci_disable_ptm() decrements
dev->ptm_enable_cnt unconditionally and then recurses upstream, so
calling it after a failed enable would drive this device's count negative
and wrongly decrement parents shared with other endpoints.
This issue was identified during our ongoing static-analysis research
while reviewing kernel code.
Fixes: 8d5e12c5921c ("idpf: add initial PTP support")
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
Changes in v3:
- Rebased; aa8671af0c38 ("PCI/PTM: Drop pci_enable_ptm() granularity
parameter") changed the call signature, so v2 no longer applied.
- Guard both pci_disable_ptm() calls with pcie_ptm_enabled(), as
pci_disable_ptm() is refcounted and recurses upstream since
e1092d5e15e6 ("PCI/PTM: Do not enable PTM automatically for Root and
Switch Upstream Ports"). Raised by Tony Nguyen.
- Dropped the v2 claim that pci_disable_ptm() is a no-op when PTM was not
enabled; that is no longer true.
Changes in v2:
- Disable PTM in the probe error path, as requested by Emil Tantilov.
drivers/net/ethernet/intel/idpf/idpf_main.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c
index ab3c409..97bafeb 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_main.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_main.c
@@ -159,6 +159,8 @@ destroy_wqs:
mutex_destroy(&adapter->queue_lock);
mutex_destroy(&adapter->vc_buf_lock);
+ if (pcie_ptm_enabled(pdev))
+ pci_disable_ptm(pdev);
pci_set_drvdata(pdev, NULL);
kfree(adapter);
}
@@ -266,7 +268,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err) {
pci_err(pdev, "DMA configuration failed: %pe\n", ERR_PTR(err));
- goto err_free;
+ goto err_disable_ptm;
}
pci_set_master(pdev);
@@ -279,7 +281,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (!adapter->init_wq) {
dev_err(dev, "Failed to allocate init workqueue\n");
err = -ENOMEM;
- goto err_free;
+ goto err_disable_ptm;
}
adapter->serv_wq = alloc_workqueue("%s-%s-service",
@@ -366,6 +368,9 @@ err_mbx_wq_alloc:
destroy_workqueue(adapter->serv_wq);
err_serv_wq_alloc:
destroy_workqueue(adapter->init_wq);
+err_disable_ptm:
+ if (pcie_ptm_enabled(pdev))
+ pci_disable_ptm(pdev);
err_free:
kfree(adapter);
return err;
--
2.47.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [Intel-wired-lan] [PATCH v3 net] idpf: disable PTM on probe failure and on remove
@ 2026-07-20 14:35 ` Myeonghun Pak
0 siblings, 0 replies; 6+ messages in thread
From: Myeonghun Pak @ 2026-07-20 14:35 UTC (permalink / raw)
To: Tony Nguyen, Przemek Kitszel, intel-wired-lan
Cc: Milena Olech, Emil Tantilov, Mina Almasry, Andrew Lunn,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, linux-kernel, Myeonghun Pak, Ijae Kim
idpf_probe() enables PCIe Precision Time Measurement with
pci_enable_ptm(), which takes a reference on the device and on every
PTM-capable device up the path to the PTM Root.
Neither the probe error path nor idpf_remove() drops that reference, so
the PTM enable counts of this device and of its upstream path stay
elevated with no bound driver, and the device's PTM control bits remain
set. pcim_enable_device() only arranges for pci_disable_device() and
does not undo the PTM enable.
Add the matching pci_disable_ptm() to the common probe unwind and to
idpf_remove(). pci_enable_ptm() failure is not fatal here, so guard both
calls with pcie_ptm_enabled(): pci_disable_ptm() decrements
dev->ptm_enable_cnt unconditionally and then recurses upstream, so
calling it after a failed enable would drive this device's count negative
and wrongly decrement parents shared with other endpoints.
This issue was identified during our ongoing static-analysis research
while reviewing kernel code.
Fixes: 8d5e12c5921c ("idpf: add initial PTP support")
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
Changes in v3:
- Rebased; aa8671af0c38 ("PCI/PTM: Drop pci_enable_ptm() granularity
parameter") changed the call signature, so v2 no longer applied.
- Guard both pci_disable_ptm() calls with pcie_ptm_enabled(), as
pci_disable_ptm() is refcounted and recurses upstream since
e1092d5e15e6 ("PCI/PTM: Do not enable PTM automatically for Root and
Switch Upstream Ports"). Raised by Tony Nguyen.
- Dropped the v2 claim that pci_disable_ptm() is a no-op when PTM was not
enabled; that is no longer true.
Changes in v2:
- Disable PTM in the probe error path, as requested by Emil Tantilov.
drivers/net/ethernet/intel/idpf/idpf_main.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c
index ab3c409..97bafeb 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_main.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_main.c
@@ -159,6 +159,8 @@ destroy_wqs:
mutex_destroy(&adapter->queue_lock);
mutex_destroy(&adapter->vc_buf_lock);
+ if (pcie_ptm_enabled(pdev))
+ pci_disable_ptm(pdev);
pci_set_drvdata(pdev, NULL);
kfree(adapter);
}
@@ -266,7 +268,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err) {
pci_err(pdev, "DMA configuration failed: %pe\n", ERR_PTR(err));
- goto err_free;
+ goto err_disable_ptm;
}
pci_set_master(pdev);
@@ -279,7 +281,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (!adapter->init_wq) {
dev_err(dev, "Failed to allocate init workqueue\n");
err = -ENOMEM;
- goto err_free;
+ goto err_disable_ptm;
}
adapter->serv_wq = alloc_workqueue("%s-%s-service",
@@ -366,6 +368,9 @@ err_mbx_wq_alloc:
destroy_workqueue(adapter->serv_wq);
err_serv_wq_alloc:
destroy_workqueue(adapter->init_wq);
+err_disable_ptm:
+ if (pcie_ptm_enabled(pdev))
+ pci_disable_ptm(pdev);
err_free:
kfree(adapter);
return err;
--
2.47.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [Intel-wired-lan] [PATCH v3 net] idpf: disable PTM on probe failure and on remove
2026-07-20 14:35 ` [Intel-wired-lan] " Myeonghun Pak
@ 2026-07-22 0:46 ` Jakub Kicinski
-1 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2026-07-22 0:46 UTC (permalink / raw)
To: Myeonghun Pak
Cc: Tony Nguyen, Przemek Kitszel, intel-wired-lan, Milena Olech,
Emil Tantilov, Mina Almasry, Andrew Lunn, David S . Miller,
Eric Dumazet, Paolo Abeni, netdev, linux-kernel, Ijae Kim
On Mon, 20 Jul 2026 23:35:10 +0900 Myeonghun Pak wrote:
> Subject: [PATCH v3 net] idpf: disable PTM on probe failure and on remove
Please try not to change the subject of your patches when you respin.
It breaks version tracking. Ideally you'd tag this as iwl not net.
We don't apply intel NIC patches directly.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 net] idpf: disable PTM on probe failure and on remove
@ 2026-07-22 0:46 ` Jakub Kicinski
0 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2026-07-22 0:46 UTC (permalink / raw)
To: Myeonghun Pak
Cc: Tony Nguyen, Przemek Kitszel, intel-wired-lan, Milena Olech,
Emil Tantilov, Mina Almasry, Andrew Lunn, David S . Miller,
Eric Dumazet, Paolo Abeni, netdev, linux-kernel, Ijae Kim
On Mon, 20 Jul 2026 23:35:10 +0900 Myeonghun Pak wrote:
> Subject: [PATCH v3 net] idpf: disable PTM on probe failure and on remove
Please try not to change the subject of your patches when you respin.
It breaks version tracking. Ideally you'd tag this as iwl not net.
We don't apply intel NIC patches directly.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Intel-wired-lan] [PATCH v3 net] idpf: disable PTM on probe failure and on remove
2026-07-22 0:46 ` Jakub Kicinski
@ 2026-07-22 0:47 ` Jakub Kicinski
-1 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2026-07-22 0:47 UTC (permalink / raw)
To: Myeonghun Pak
Cc: Tony Nguyen, Przemek Kitszel, intel-wired-lan, Milena Olech,
Emil Tantilov, Mina Almasry, Andrew Lunn, David S . Miller,
Eric Dumazet, Paolo Abeni, netdev, linux-kernel, Ijae Kim
On Tue, 21 Jul 2026 17:46:42 -0700 Jakub Kicinski wrote:
> On Mon, 20 Jul 2026 23:35:10 +0900 Myeonghun Pak wrote:
> > Subject: [PATCH v3 net] idpf: disable PTM on probe failure and on remove
>
> Please try not to change the subject of your patches when you respin.
> It breaks version tracking. Ideally you'd tag this as iwl not net.
> We don't apply intel NIC patches directly.
Of course this is for future reference. Do not repost this unless
someone gives you real feedback.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 net] idpf: disable PTM on probe failure and on remove
@ 2026-07-22 0:47 ` Jakub Kicinski
0 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2026-07-22 0:47 UTC (permalink / raw)
To: Myeonghun Pak
Cc: Tony Nguyen, Przemek Kitszel, intel-wired-lan, Milena Olech,
Emil Tantilov, Mina Almasry, Andrew Lunn, David S . Miller,
Eric Dumazet, Paolo Abeni, netdev, linux-kernel, Ijae Kim
On Tue, 21 Jul 2026 17:46:42 -0700 Jakub Kicinski wrote:
> On Mon, 20 Jul 2026 23:35:10 +0900 Myeonghun Pak wrote:
> > Subject: [PATCH v3 net] idpf: disable PTM on probe failure and on remove
>
> Please try not to change the subject of your patches when you respin.
> It breaks version tracking. Ideally you'd tag this as iwl not net.
> We don't apply intel NIC patches directly.
Of course this is for future reference. Do not repost this unless
someone gives you real feedback.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-22 0:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-20 14:35 [PATCH v3 net] idpf: disable PTM on probe failure and on remove Myeonghun Pak
2026-07-20 14:35 ` [Intel-wired-lan] " Myeonghun Pak
2026-07-22 0:46 ` Jakub Kicinski
2026-07-22 0:46 ` Jakub Kicinski
2026-07-22 0:47 ` [Intel-wired-lan] " Jakub Kicinski
2026-07-22 0:47 ` Jakub Kicinski
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.