dma-buf/sw_sync: force signal all unsignaled fences on dying timeline
authorDominik Behr <dbehr@chromium.org>
Thu, 7 Sep 2017 19:02:46 +0000 (16:02 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 10 Dec 2017 12:40:44 +0000 (13:40 +0100)
commit779bfa90bdf97a6d00459471f6d371f6036f3da5
treee1c0f7f4e8eaa49533aefb1885d1e7715c71ac99
parent1ffabfc1d58ba586fa11cc3cde21d54afec03387
dma-buf/sw_sync: force signal all unsignaled fences on dying timeline

commit ea4d5a270b57fa8d4871f372ca9b97b7697fdfda upstream.

To avoid hanging userspace components that might have been waiting on the
active fences of the destroyed timeline we need to signal with error all
remaining fences on such timeline.

This restore the default behaviour of the Android sw_sync framework, which
Android still relies on. It was broken on the dma fence conversion a few
years ago and never fixed.

v2: Do not bother with cleanup do the list (Chris Wilson)

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dominik Behr <dbehr@chromium.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907190246.16425-2-gustavo@padovan.org
Cc: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma-buf/sw_sync.c