diff mbox series

[v10,02/10] PCI: dwc: Propagate error from dma_mapping_error()

Message ID 20220513172622.2968887-3-dmitry.baryshkov@linaro.org
State New
Headers show
Series PCI: qcom: Fix higher MSI vectors handling | expand

Commit Message

Dmitry Baryshkov May 13, 2022, 5:26 p.m. UTC
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(-)

Comments

Johan Hovold May 18, 2022, 9:30 a.m. UTC | #1
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
Dmitry Baryshkov May 20, 2022, 11:57 a.m. UTC | #2
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
Rob Herring (Arm) May 26, 2022, 6:01 p.m. UTC | #3
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 mbox series

Patch

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;
 			}