2022-03-03 02:57:36

by Jia-Ju Bai

[permalink] [raw]
Subject: [PATCH] isdn: hfcpci: check the return value of dma_set_mask() in setup_hw()

The function dma_set_mask() in setup_hw() can fail, so its return value
should be checked.

Fixes: e85da794f658 ("mISDN: switch from 'pci_' to 'dma_' API")
Reported-by: TOTE Robot <[email protected]>
Signed-off-by: Jia-Ju Bai <[email protected]>
---
drivers/isdn/hardware/mISDN/hfcpci.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index bd087cca1c1d..af17459c1a5c 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -2005,7 +2005,11 @@ setup_hw(struct hfc_pci *hc)
}
/* Allocate memory for FIFOS */
/* the memory needs to be on a 32k boundary within the first 4G */
- dma_set_mask(&hc->pdev->dev, 0xFFFF8000);
+ if (dma_set_mask(&hc->pdev->dev, 0xFFFF8000)) {
+ printk(KERN_WARNING
+ "HFC-PCI: No usable DMA configuration!\n");
+ return -EIO;
+ }
buffer = dma_alloc_coherent(&hc->pdev->dev, 0x8000, &hc->hw.dmahandle,
GFP_KERNEL);
/* We silently assume the address is okay if nonzero */
--
2.17.1


2022-03-04 15:39:54

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] isdn: hfcpci: check the return value of dma_set_mask() in setup_hw()

On Wed, 2 Mar 2022 18:57:10 -0800 Jia-Ju Bai wrote:
> The function dma_set_mask() in setup_hw() can fail, so its return value
> should be checked.
>
> Fixes: e85da794f658 ("mISDN: switch from 'pci_' to 'dma_' API")

The change under Fixes only switched the helper the driver uses,
it did not introduce the problem. The Fixes tag should point to
the earliest commit where the problem is present.

2022-03-05 08:57:17

by Jia-Ju Bai

[permalink] [raw]
Subject: Re: [PATCH] isdn: hfcpci: check the return value of dma_set_mask() in setup_hw()



On 2022/3/4 13:15, Jakub Kicinski wrote:
> On Wed, 2 Mar 2022 18:57:10 -0800 Jia-Ju Bai wrote:
>> The function dma_set_mask() in setup_hw() can fail, so its return value
>> should be checked.
>>
>> Fixes: e85da794f658 ("mISDN: switch from 'pci_' to 'dma_' API")
> The change under Fixes only switched the helper the driver uses,
> it did not introduce the problem. The Fixes tag should point to
> the earliest commit where the problem is present.

Hi Jakub,

Thanks for the advice.
I will send a V2 patch.


Best wishes,
Jia-Ju Bai