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