diff mbox series

isdn: hfcpci: check the return value of dma_set_mask() in setup_hw()

Message ID 20220303025710.1201-1-baijiaju1990@gmail.com (mailing list archive)
State Superseded
Headers show
Series isdn: hfcpci: check the return value of dma_set_mask() in setup_hw() | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Jia-Ju Bai March 3, 2022, 2:57 a.m. UTC
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 <oslab@tsinghua.edu.cn>
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
---
 drivers/isdn/hardware/mISDN/hfcpci.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Jakub Kicinski March 4, 2022, 5:15 a.m. UTC | #1
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.
Jia-Ju Bai March 5, 2022, 8:34 a.m. UTC | #2
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
diff mbox series

Patch

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 */