drm/nouveau: fix locking issues in page flipping paths
authorBen Skeggs <bskeggs@redhat.com>
Mon, 8 Jul 2013 04:15:51 +0000 (14:15 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 10 Jul 2013 00:47:12 +0000 (10:47 +1000)
commit060810d7abaabcab282e062c595871d661561400
treed27009af2a9255c10eeccf3f72246515dca11b38
parent06d5a24f08831e167fae42a64ef2083a89f8e617
drm/nouveau: fix locking issues in page flipping paths

b580c9e2b7ba5030a795aa2fb73b796523d65a78 introduced additional problems
while trying to solve issues that became apparent while porting to the
new reservation stuff.

The major problem was that the the previously mentioned patch took the
client mutex earlier than previously, but the pinning of new_bo can
can potentially cause a buffer move, which would result in attempting to
acquire the same mutex again.

This commit attempts to fix that "fix".

Thanks to Maarten for the tips on keeping lockdep happy and cooking :)

Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
drivers/gpu/drm/nouveau/nouveau_bo.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_drm.c