[PATCH] drm/omap: avoid aquiring mutex in atomic context (v2)
Felipe Contreras
felipe.contreras at gmail.com
Sun Jan 1 11:16:51 PST 2012
On Fri, Dec 16, 2011 at 7:34 PM, Rob Clark <rob.clark at linaro.org> wrote:
> --- a/drivers/staging/omapdrm/omap_gem.c
> +++ b/drivers/staging/omapdrm/omap_gem.c
> @@ -538,10 +538,22 @@ int omap_gem_roll(struct drm_gem_object *obj, uint32_t roll)
> return -EINVAL;
> }
>
> - mutex_lock(&obj->dev->struct_mutex);
> -
> omap_obj->roll = roll;
>
> + if (in_atomic() || mutex_is_locked(&obj->dev->struct_mutex)) {
> + /* this can get called from fbcon in atomic context.. so
> + * just ignore it and wait for next time called from
> + * interruptible context to update the PAT.. the result
> + * may be that user sees wrap-around instead of scrolling
> + * momentarily on the screen. If we wanted to be fancier
> + * we could perhaps schedule some workqueue work at this
> + * point.
> + */
Multi-line comments are supposed to be of the form:
/*
* Foo.
*/
> + return 0;
> + }
> +
> + mutex_lock(&obj->dev->struct_mutex);
> +
> /* if we aren't mapped yet, we don't need to do anything */
> if (omap_obj->block) {
> struct page **pages;
> --
Cheers.
--
Felipe Contreras
More information about the dri-devel
mailing list