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

From: Gerd Bayer
Date: Wed Jun 26 2024 - 08:49:32 EST


Hi Ma Ke,

On Wed, 2024-06-26 at 16:12 +0800, Ma Ke wrote:
> 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().

I think formally you're correct. dma_set_max_seg_size() could return an
error if dev->dma_parms was not present.

However, since ISM devices are PCI attached (and will remain PCI
attached I believe) we can take the existance of dev->dma_parms for
granted since pci_device_add() (in drivers/pci/probe.c) will make that
point to the pci_dev's dma_parms for every PCI device.

So I'm not sure how important this fix is.

> Fixes: 684b89bc39ce ("s390/ism: add device driver for internal shared
> memory")
> Signed-off-by: Ma Ke <make24@xxxxxxxxxxx>
> ---
>  drivers/s390/net/ism_drv.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/s390/net/ism_drv.c b/drivers/s390/net/ism_drv.c
> index e36e3ea165d3..9ddd093a0368 100644
> --- a/drivers/s390/net/ism_drv.c
> +++ b/drivers/s390/net/ism_drv.c
> @@ -620,7 +620,9 @@ 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)
> + return ret;
>   pci_set_master(pdev);
>  
>   ret = ism_dev_init(ism);

BTW, I've dropped ubraun@xxxxxxxxxxxxx and sebott@xxxxxxxxxxxxx as
their emails won't work any longer, anyhow. Instead I've added Niklas
Schnelle, Wenjia Zhang and Stefan Raspl.

Thanks, Gerd