Message ID | 20240429023833.1869154-1-nichen@iscas.ac.cn |
---|---|
State | New |
Headers | show |
Series | drm/exynos: Add check for dma_set_max_seg_size | expand |
On Mon, Apr 29, 2024 at 10:38:33AM +0800, Chen Ni wrote: > Add check for the return value of dma_set_max_seg_size() and return > the error if it fails in order to catch the error. > > Fixes: ddfd4ab6bb08 ("drm/exynos: Fix dma_parms allocation") > Signed-off-by: Chen Ni <nichen@iscas.ac.cn> With my dma-mapping hat maintainer on I think we should remove the return value from it. It can only return -EIO or 0, and the first only if the bus has not set up a dma_params structure for the device. I'd much rather WARN_ON() on that, as it is is a grave error to either call dma_set_max_seg_size on a device that is on a bus that doesn't support DMA at all, or for the bus maintainer to accidentlaly drop it. Feel free to add the patch if exynos has a strict error checking policy, but it's rather pointless and I'll add removing the return value to my ever growing TODO list.
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dma.c b/drivers/gpu/drm/exynos/exynos_drm_dma.c index e2c7373f20c6..0f942186f3ff 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dma.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dma.c @@ -51,7 +51,10 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev, return -EINVAL; } - dma_set_max_seg_size(subdrv_dev, DMA_BIT_MASK(32)); + ret = dma_set_max_seg_size(subdrv_dev, DMA_BIT_MASK(32)); + if (ret) + return ret; + if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) { /* * Keep the original DMA mapping of the sub-device and
Add check for the return value of dma_set_max_seg_size() and return the error if it fails in order to catch the error. Fixes: ddfd4ab6bb08 ("drm/exynos: Fix dma_parms allocation") Signed-off-by: Chen Ni <nichen@iscas.ac.cn> --- drivers/gpu/drm/exynos/exynos_drm_dma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)