[PATCH 6/9] drm/xen-front: Introduce DRM/KMS virtual display driver

Boris Ostrovsky boris.ostrovsky at oracle.com
Fri Feb 23 15:12:21 UTC 2018


On 02/21/2018 03:03 AM, Oleksandr Andrushchenko wrote:

> +
> +struct drm_driver xen_drm_driver = {
> +	.driver_features           = DRIVER_GEM | DRIVER_MODESET |
> +				     DRIVER_PRIME | DRIVER_ATOMIC,
> +	.lastclose                 = lastclose,
> +	.gem_free_object_unlocked  = free_object,
> +	.gem_vm_ops                = &xen_drm_vm_ops,
> +	.prime_handle_to_fd        = drm_gem_prime_handle_to_fd,
> +	.prime_fd_to_handle        = drm_gem_prime_fd_to_handle,
> +	.gem_prime_import          = drm_gem_prime_import,
> +	.gem_prime_export          = drm_gem_prime_export,
> +	.gem_prime_get_sg_table    = prime_get_sg_table,
> +	.gem_prime_import_sg_table = prime_import_sg_table,
> +	.gem_prime_vmap            = prime_vmap,
> +	.gem_prime_vunmap          = prime_vunmap,
> +	.gem_prime_mmap            = prime_mmap,
> +	.dumb_create               = dumb_create,
> +	.fops                      = &xendrm_fops,
> +	.name                      = "xendrm-du",
> +	.desc                      = "Xen PV DRM Display Unit",
> +	.date                      = "20161109",

You must have been working on this for a while ;-)

I assume this needs to be updated.

> +bool xen_drm_front_drv_is_used(struct platform_device *pdev)
> +{
> +	struct xen_drm_front_drm_info *drm_info = platform_get_drvdata(pdev);
> +	struct drm_device *dev;
> +
> +	if (!drm_info)
> +		return false;
> +
> +	dev = drm_info->drm_dev;
> +	if (!dev)
> +		return false;
> +
> +	/*
> +	 * FIXME: the code below must be protected by drm_global_mutex,
> +	 * but it is not accessible to us. Anyways there is a race condition,
> +	 * but we will re-try.
> +	 */
> +	return dev->open_count != 0;

Would it be a problem, given the race, if you report that the frontend
is not in use, while it actually is?

-boris


More information about the dri-devel mailing list