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