OSDN Git Service

drm/omap: fix race condition with dev->obj_list
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 17 Dec 2014 12:34:22 +0000 (14:34 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 24 Mar 2015 11:50:58 +0000 (13:50 +0200)
commit76c4055f2c9a7ae556e96c1cadd82ee182b7d87e
treee9464ef16dd2638e6cc56a7d49f7eef34eda3bdd
parent8519c62ce610e512722d1d8e3991c02cca59010c
drm/omap: fix race condition with dev->obj_list

omap_gem_objects are added to dev->obj_list in omap_gem_new, and removed
in omap_gem_free_object. Unfortunately there's no locking for
dev->obj_list, which eventually leads to a crash:

WARNING: CPU: 1 PID: 1123 at lib/list_debug.c:59 __list_del_entry+0xa4/0xe0()
list_del corruption. prev->next should be e9281344, but was ea722b84

Add a spinlock to protect dev->obj_list.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_drv.c
drivers/gpu/drm/omapdrm/omap_drv.h
drivers/gpu/drm/omapdrm/omap_gem.c