correct drm work flush behaviour
authorjsg <jsg@openbsd.org>
Sun, 14 Feb 2021 03:42:55 +0000 (03:42 +0000)
committerjsg <jsg@openbsd.org>
Sun, 14 Feb 2021 03:42:55 +0000 (03:42 +0000)
commit15e28df90169d92731a148fca7d948f804296fe6
tree7c1305460e6af898e6d6f1bba395c4cecb0fb652
parenta119297bd5e44b38d77070a02315a6e337fde1cb
correct drm work flush behaviour

Don't set taskq to system_wq in INIT_WORK().  Test if taskq pointer is
non-NULL before calling taskq_barrier() in flush functions.

fixes a black screen on boot problem with 5.10.y drm using nano x1
bisected by jcs@ to
'drm/i915: Always flush the active worker before returning from the wait'
sys/dev/pci/drm/drm_linux.c
sys/dev/pci/drm/include/linux/workqueue.h