[lvc-project] [PATCH 5.10] vgem: fix error return in vgem_init()

Fedor Pchelkin pchelkin at ispras.ru
Mon Sep 22 20:49:14 MSK 2025


On Mon, 22. Sep 17:43, Alexandr Sapozhnkiov wrote:
> @@ -140,8 +140,10 @@ static int __init vgem_init(void)
>  		goto out_unregister;
>  	}
>  
> -	dma_coerce_mask_and_coherent(&pdev->dev,
> +	ret = dma_coerce_mask_and_coherent(&pdev->dev,
>  				     DMA_BIT_MASK(64));

DMA_BIT_MASK(64) - это полная маска, т.е. состоящая из всех единиц.  При
вызове с таким параметром dma_coerce_mask_and_coherent() не может вернуть
ошибку.

[Documentation/core-api/dma-api-howto.rst]

The standard 64-bit addressing device would do something like this::

	dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64))

dma_set_mask_and_coherent() never return fail when DMA_BIT_MASK(64). Typical
error code like::

	/* Wrong code */
	if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)))
		dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))


> +	if (ret)
> +		goto out_devres;
>  
>  	vgem_device = devm_drm_dev_alloc(&pdev->dev, &vgem_driver,
>  					 struct vgem_device, drm);



More information about the lvc-project mailing list