Re: [PATCH v2 1/5] PCI: Use pcie_get_link_speed() in pci.c
From: Ilpo Järvinen
Date: Mon Nov 09 2026 - 07:06:17 EST
On Sun, 8 Nov 2026, Hans Zhang wrote:
> Replace the to_pcie_link_speed() wrapper with pcie_get_link_speed() in
> pcie_link_bandwidth_mbps() and pcie_bandwidth_available(), and remove
> the now-unused wrapper. pcie_get_link_speed() performs the same lookup
> with bounds checking and is already exported.
>
> Signed-off-by: Hans Zhang <18255117159@xxxxxxx>
> ---
> drivers/pci/pci.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 7c6f2aba8144..92ede1768caf 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -6025,11 +6025,6 @@ int pcie_set_mps(struct pci_dev *dev, int mps)
> }
> EXPORT_SYMBOL(pcie_set_mps);
>
> -static enum pci_bus_speed to_pcie_link_speed(u16 lnksta)
> -{
> - return pcie_link_speed[FIELD_GET(PCI_EXP_LNKSTA_CLS, lnksta)];
> -}
> -
> /**
> * pcie_link_bandwidth_mbps - get the current bandwidth of a single PCIe link
> * @pdev: PCI device to query
> @@ -6048,7 +6043,7 @@ int pcie_link_bandwidth_mbps(struct pci_dev *pdev)
> if (err)
> return pcibios_err_to_errno(err);
>
> - speed = pcie_dev_speed_mbps(to_pcie_link_speed(lnksta));
> + speed = pcie_dev_speed_mbps(pcie_get_link_speed(FIELD_GET(PCI_EXP_LNKSTA_CLS, lnksta)));
Readability seems worse due to cramming everything into a single
statement.
> if (speed < 0)
> return speed;
>
> @@ -6089,7 +6084,7 @@ u32 pcie_bandwidth_available(struct pci_dev *dev, struct pci_dev **limiting_dev,
> while (dev) {
> pcie_capability_read_word(dev, PCI_EXP_LNKSTA, &lnksta);
>
> - next_speed = to_pcie_link_speed(lnksta);
> + next_speed = pcie_get_link_speed(FIELD_GET(PCI_EXP_LNKSTA_CLS, lnksta));
> next_width = FIELD_GET(PCI_EXP_LNKSTA_NLW, lnksta);
>
> next_bw = next_width * PCIE_SPEED2MBS_ENC(next_speed);
>
--
i.