Message ID | 20220513172622.2968887-3-dmitry.baryshkov@linaro.org |
---|---|
State | New |
Headers | show |
Series | PCI: qcom: Fix higher MSI vectors handling | expand |
On Fri, May 13, 2022 at 08:26:14PM +0300, Dmitry Baryshkov wrote: > If dma mapping fails, dma_mapping_error() will return an error. > Propagate it to the dw_pcie_host_init() return value rather than > incorrectly returning 0 in this case. > > Fixes: 07940c369a6b ("PCI: dwc: Fix MSI page leakage in suspend/resume") > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/pci/controller/dwc/pcie-designware-host.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c > index 2fa86f32d964..a9a31e9e7b6e 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -396,8 +396,9 @@ int dw_pcie_host_init(struct pcie_port *pp) > sizeof(pp->msi_msg), > DMA_FROM_DEVICE, > DMA_ATTR_SKIP_CPU_SYNC); > - if (dma_mapping_error(pci->dev, pp->msi_data)) { > - dev_err(pci->dev, "Failed to map MSI data\n"); > + ret = dma_mapping_error(pci->dev, pp->msi_data); > + if (ret) { > + dev_err(pci->dev, "Failed to map MSI data: %d\n", ret); > pp->msi_data = 0; > goto err_free_msi; > } This has already been fixed by commit 88557685cd72 ("PCI: dwc: Fix setting error return on MSI DMA mapping failure"), which prevents the series from applying cleanly. Johan
On 18/05/2022 12:30, Johan Hovold wrote: > On Fri, May 13, 2022 at 08:26:14PM +0300, Dmitry Baryshkov wrote: >> If dma mapping fails, dma_mapping_error() will return an error. >> Propagate it to the dw_pcie_host_init() return value rather than >> incorrectly returning 0 in this case. >> >> Fixes: 07940c369a6b ("PCI: dwc: Fix MSI page leakage in suspend/resume") >> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> --- >> drivers/pci/controller/dwc/pcie-designware-host.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c >> index 2fa86f32d964..a9a31e9e7b6e 100644 >> --- a/drivers/pci/controller/dwc/pcie-designware-host.c >> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c >> @@ -396,8 +396,9 @@ int dw_pcie_host_init(struct pcie_port *pp) >> sizeof(pp->msi_msg), >> DMA_FROM_DEVICE, >> DMA_ATTR_SKIP_CPU_SYNC); >> - if (dma_mapping_error(pci->dev, pp->msi_data)) { >> - dev_err(pci->dev, "Failed to map MSI data\n"); >> + ret = dma_mapping_error(pci->dev, pp->msi_data); >> + if (ret) { >> + dev_err(pci->dev, "Failed to map MSI data: %d\n", ret); >> pp->msi_data = 0; >> goto err_free_msi; >> } > > This has already been fixed by commit 88557685cd72 ("PCI: dwc: Fix > setting error return on MSI DMA mapping failure"), which prevents the > series from applying cleanly. Ack, will rebase and send. > > Johan
On Fri, May 13, 2022 at 08:26:14PM +0300, Dmitry Baryshkov wrote: > If dma mapping fails, dma_mapping_error() will return an error. > Propagate it to the dw_pcie_host_init() return value rather than > incorrectly returning 0 in this case. > > Fixes: 07940c369a6b ("PCI: dwc: Fix MSI page leakage in suspend/resume") > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/pci/controller/dwc/pcie-designware-host.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) There's already a similar fix applied. > > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c > index 2fa86f32d964..a9a31e9e7b6e 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -396,8 +396,9 @@ int dw_pcie_host_init(struct pcie_port *pp) > sizeof(pp->msi_msg), > DMA_FROM_DEVICE, > DMA_ATTR_SKIP_CPU_SYNC); > - if (dma_mapping_error(pci->dev, pp->msi_data)) { > - dev_err(pci->dev, "Failed to map MSI data\n"); > + ret = dma_mapping_error(pci->dev, pp->msi_data); > + if (ret) { > + dev_err(pci->dev, "Failed to map MSI data: %d\n", ret); > pp->msi_data = 0; > goto err_free_msi; > } > -- > 2.35.1 >
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index 2fa86f32d964..a9a31e9e7b6e 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -396,8 +396,9 @@ int dw_pcie_host_init(struct pcie_port *pp) sizeof(pp->msi_msg), DMA_FROM_DEVICE, DMA_ATTR_SKIP_CPU_SYNC); - if (dma_mapping_error(pci->dev, pp->msi_data)) { - dev_err(pci->dev, "Failed to map MSI data\n"); + ret = dma_mapping_error(pci->dev, pp->msi_data); + if (ret) { + dev_err(pci->dev, "Failed to map MSI data: %d\n", ret); pp->msi_data = 0; goto err_free_msi; }
If dma mapping fails, dma_mapping_error() will return an error. Propagate it to the dw_pcie_host_init() return value rather than incorrectly returning 0 in this case. Fixes: 07940c369a6b ("PCI: dwc: Fix MSI page leakage in suspend/resume") Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/pci/controller/dwc/pcie-designware-host.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)