On Tue, Apr 23, 2024 at 10:32:05PM +0800, Ma Ke wrote: > To avoid the failure of dma_set_max_seg_size(), we should check the > return value of the dma_set_max_seg_size(). Check return value of dma_set_max_seg_size() in case it return error. > > Signed-off-by: Ma Ke <make_ruc2021@xxxxxxx> > --- > drivers/dma/mxs-dma.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c > index cfb9962417ef..90cbb9b04b02 100644 > --- a/drivers/dma/mxs-dma.c > +++ b/drivers/dma/mxs-dma.c > @@ -798,7 +798,9 @@ static int mxs_dma_probe(struct platform_device *pdev) > mxs_dma->dma_device.dev = &pdev->dev; > > /* mxs_dma gets 65535 bytes maximum sg size */ > - dma_set_max_seg_size(mxs_dma->dma_device.dev, MAX_XFER_BYTES); > + ret = dma_set_max_seg_size(mxs_dma->dma_device.dev, MAX_XFER_BYTES); > + if (ret) > + return ret; How error happen? static inline int dma_set_max_seg_size(struct device *dev, unsigned int size) { if (dev->dma_parms) { dev->dma_parms->max_segment_size = size; return 0; } return -EIO; } Only possible dev->dma_parms is null. but mxs-dma is platform device, it point to platform's dma_parms field. Look like impossible it is null. Frank > > mxs_dma->dma_device.device_alloc_chan_resources = mxs_dma_alloc_chan_resources; > mxs_dma->dma_device.device_free_chan_resources = mxs_dma_free_chan_resources; > -- > 2.37.2 >