drm/vmwgfx: Fix an incorrect lock check
authorThomas Hellstrom <thellstrom@vmware.com>
Fri, 8 Jan 2016 19:29:39 +0000 (20:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Mar 2016 23:07:18 +0000 (15:07 -0800)
commit fb89ac5102ae2875d685c847e6b5dbc141622d43 upstream.

With CONFIG_SMP=n and CONFIG_DEBUG_SPINLOCK=y the vmwgfx kernel module
would unconditionally throw a bug when checking for a held spinlock
in the command buffer code. Fix this by using a lockdep check.

Reported-and-tested-by: Tetsuo Handa <penguin-kernel@i-love-sakura.ne.jp>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c

index 6377e8151000f5401309133b635150acf128c2ad..67cebb23c940e2dc0019eab8b1dbe0b4a036650a 100644 (file)
@@ -247,7 +247,7 @@ static void __vmw_cmdbuf_header_free(struct vmw_cmdbuf_header *header)
 {
        struct vmw_cmdbuf_man *man = header->man;
 
-       BUG_ON(!spin_is_locked(&man->lock));
+       lockdep_assert_held_once(&man->lock);
 
        if (header->inline_space) {
                vmw_cmdbuf_header_inline_free(header);