[PATCH 08/18] drm: Rip out totally bogus vga_switcheroo->can_switch locking

Thierry Reding thierry.reding at gmail.com
Thu Apr 17 07:56:04 PDT 2014


On Fri, Apr 11, 2014 at 11:36:05PM +0200, Daniel Vetter wrote:
[...]
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 4dff829c2d89..dcb67c6564dd 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1286,9 +1286,12 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
>  	struct drm_device *dev = pci_get_drvdata(pdev);
>  	bool can_switch;
>  
> -	spin_lock(&dev->count_lock);
> +	/*
> +	 * FIXME: open_count is protected by drm_global_mutex but that would lead to
> +	 * locking inversion with the driver load path. And the access here is
> +	 * completely racy anyway. So don't bother with locking for now.
> +	 */
>  	can_switch = (dev->open_count == 0);
> -	spin_unlock(&dev->count_lock);
>  	return can_switch;
>  }

Couldn't this now be shortened to:

	return (dev->open_count == 0);

? Similarily for the other drivers.

> diff --git a/include/drm/drmP.h b/include/drm/drmP.h
> index 9f1fb8d36b67..bd16a4c8ece4 100644
> --- a/include/drm/drmP.h
> +++ b/include/drm/drmP.h
> @@ -1076,7 +1076,7 @@ struct drm_device {
>  
>  	/** \name Usage Counters */
>  	/*@{ */
> -	int open_count;			/**< Outstanding files open */
> +	int open_count;			/**< Outstanding files open, protected by drm_global_lock. */

s/drm_global_lock/drm_global_mutex/?

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140417/836e468d/attachment.sig>


More information about the dri-devel mailing list