diff mbox series

[v2] s390/ism: Add check for dma_set_max_seg_size in ism_probe()

Message ID 20240627021314.2976443-1-make24@iscas.ac.cn (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series [v2] s390/ism: Add check for dma_set_max_seg_size in ism_probe() | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Ma Ke June 27, 2024, 2:13 a.m. UTC
As the possible failure of the dma_set_max_seg_size(), we should better
check the return value of the dma_set_max_seg_size().

Fixes: b0da3498c587 ("PCI: Remove pci_set_dma_max_seg_size()")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v2:
- modified the patch according to suggestions;
- modified Fixes line according to suggestions.
---
 drivers/s390/net/ism_drv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Ratheesh Kannoth June 27, 2024, 5:20 a.m. UTC | #1
On 2024-06-27 at 07:43:14, Ma Ke (make24@iscas.ac.cn) wrote:
> As the possible failure of the dma_set_max_seg_size(), we should better
Could you expand on the scenario of failure ?
> check the return value of the dma_set_max_seg_size().

> +++ b/drivers/s390/net/ism_drv.c
> @@ -620,7 +620,10 @@ static int ism_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  		goto err_resource;
>
>  	dma_set_seg_boundary(&pdev->dev, SZ_1M - 1);
> -	dma_set_max_seg_size(&pdev->dev, SZ_1M);
> +	ret = dma_set_max_seg_size(&pdev->dev, SZ_1M);
Same error check is not valid for dma_set_seg_boundary() ?

>
Markus Elfring June 27, 2024, 7:17 a.m. UTC | #2
> As the possible failure of the dma_set_max_seg_size(), we should better
> check the return value of the dma_set_max_seg_size().

Please avoid the repetition of a function name in such a change description.
Can it be improved with corresponding imperative wordings?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10-rc5#n94


…
> +++ b/drivers/s390/net/ism_drv.c
> @@ -620,7 +620,10 @@ static int ism_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  		goto err_resource;
>
>  	dma_set_seg_boundary(&pdev->dev, SZ_1M - 1);
> -	dma_set_max_seg_size(&pdev->dev, SZ_1M);
> +	ret = dma_set_max_seg_size(&pdev->dev, SZ_1M);
> +	if (ret)
> +		goto err_resource;
> +
>  	pci_set_master(pdev);
…

A) Will the shown dma_set_seg_boundary() call trigger similar software development concerns?
   https://elixir.bootlin.com/linux/v6.10-rc5/source/include/linux/dma-mapping.h#L562

B) Under which circumstances would you become interested to increase the application
   of scope-based resource management here?
   https://elixir.bootlin.com/linux/v6.10-rc5/source/include/linux/cleanup.h#L8


Regards,
Markus
Andrew Lunn June 27, 2024, 7:42 p.m. UTC | #3
> B) Under which circumstances would you become interested to increase the application
>    of scope-based resource management here?
>    https://elixir.bootlin.com/linux/v6.10-rc5/source/include/linux/cleanup.h#L8

Hi Markus

Please stop this. We have said a number of times, we don't want them
in existing code, at least not yet. Please come back in a couple of
years time once we know a bit more about how this helps/hinders.

      Andrew
diff mbox series

Patch

diff --git a/drivers/s390/net/ism_drv.c b/drivers/s390/net/ism_drv.c
index e36e3ea165d3..54f6638e889c 100644
--- a/drivers/s390/net/ism_drv.c
+++ b/drivers/s390/net/ism_drv.c
@@ -620,7 +620,10 @@  static int ism_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 		goto err_resource;
 
 	dma_set_seg_boundary(&pdev->dev, SZ_1M - 1);
-	dma_set_max_seg_size(&pdev->dev, SZ_1M);
+	ret = dma_set_max_seg_size(&pdev->dev, SZ_1M);
+	if (ret)
+		goto err_resource;
+
 	pci_set_master(pdev);
 
 	ret = ism_dev_init(ism);