[PATCH v2] pci: cadence-ep: Fix incorrect MSI capability ID

Hans Zhang posted 1 patch 2 months, 1 week ago
drivers/pci/controller/cadence/pcie-cadence-ep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] pci: cadence-ep: Fix incorrect MSI capability ID
Posted by Hans Zhang 2 months, 1 week ago
In a previous change, the MSIX capability ID (PCI_CAP_ID_MSIX)
was mistakenly used when trying to locate the MSI capability in
cdns_pcie_ep_get_msi(). This is incorrect as the function handles
MSI functionality, not MSIX.

Fix this by replacing PCI_CAP_ID_MSIX with the correct MSI capability
ID(PCI_CAP_ID_MSI) when calling cdns_pcie_find_capability(). This
ensures the MSI capability is properly located, allowing MSI functionality
to work asintended.

Fixes: 907912c1daa7 ("PCI: cadence: Use cdns_pcie_find_*capability() to avoid hardcoding offsets")
Reported-by: Sasha Levin <sashal@kernel.org>
Closes: https://lore.kernel.org/r/aOfMk9BW8BH2P30V@laps/
Signed-off-by: Hans Zhang <18255117159@163.com>
---
Dear Maintainer,

Since the previous patch mistakenly changed the MSI ID to MSIX ID,
a patch is submitted here to fix it. Thank you very much, Sasha, for
pointing it out.

Best regards,
Hans
---
 drivers/pci/controller/cadence/pcie-cadence-ep.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/controller/cadence/pcie-cadence-ep.c b/drivers/pci/controller/cadence/pcie-cadence-ep.c
index 1eac012a8226..c0e1194a936b 100644
--- a/drivers/pci/controller/cadence/pcie-cadence-ep.c
+++ b/drivers/pci/controller/cadence/pcie-cadence-ep.c
@@ -255,7 +255,7 @@ static int cdns_pcie_ep_get_msi(struct pci_epc *epc, u8 fn, u8 vfn)
 	u16 flags, mme;
 	u8 cap;
 
-	cap = cdns_pcie_find_capability(pcie, PCI_CAP_ID_MSIX);
+	cap = cdns_pcie_find_capability(pcie, PCI_CAP_ID_MSI);
 	fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn);
 
 	/* Validate that the MSI feature is actually enabled. */
-- 
2.34.1
Re: [PATCH v2] pci: cadence-ep: Fix incorrect MSI capability ID
Posted by Bjorn Helgaas 2 months ago
On Fri, Oct 10, 2025 at 10:43:07PM +0800, Hans Zhang wrote:
> In a previous change, the MSIX capability ID (PCI_CAP_ID_MSIX)
> was mistakenly used when trying to locate the MSI capability in
> cdns_pcie_ep_get_msi(). This is incorrect as the function handles
> MSI functionality, not MSIX.
> 
> Fix this by replacing PCI_CAP_ID_MSIX with the correct MSI capability
> ID(PCI_CAP_ID_MSI) when calling cdns_pcie_find_capability(). This
> ensures the MSI capability is properly located, allowing MSI functionality
> to work asintended.
> 
> Fixes: 907912c1daa7 ("PCI: cadence: Use cdns_pcie_find_*capability() to avoid hardcoding offsets")
> Reported-by: Sasha Levin <sashal@kernel.org>
> Closes: https://lore.kernel.org/r/aOfMk9BW8BH2P30V@laps/
> Signed-off-by: Hans Zhang <18255117159@163.com>

Applied to pci/for-linus for v6.18, thanks!

> ---
> Dear Maintainer,
> 
> Since the previous patch mistakenly changed the MSI ID to MSIX ID,
> a patch is submitted here to fix it. Thank you very much, Sasha, for
> pointing it out.
> 
> Best regards,
> Hans
> ---
>  drivers/pci/controller/cadence/pcie-cadence-ep.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/controller/cadence/pcie-cadence-ep.c b/drivers/pci/controller/cadence/pcie-cadence-ep.c
> index 1eac012a8226..c0e1194a936b 100644
> --- a/drivers/pci/controller/cadence/pcie-cadence-ep.c
> +++ b/drivers/pci/controller/cadence/pcie-cadence-ep.c
> @@ -255,7 +255,7 @@ static int cdns_pcie_ep_get_msi(struct pci_epc *epc, u8 fn, u8 vfn)
>  	u16 flags, mme;
>  	u8 cap;
>  
> -	cap = cdns_pcie_find_capability(pcie, PCI_CAP_ID_MSIX);
> +	cap = cdns_pcie_find_capability(pcie, PCI_CAP_ID_MSI);
>  	fn = cdns_pcie_get_fn_from_vfn(pcie, fn, vfn);
>  
>  	/* Validate that the MSI feature is actually enabled. */
> -- 
> 2.34.1
>