change irq work from interrupt context back to process context like
authorjsg <jsg@openbsd.org>
Mon, 17 Jan 2022 12:42:30 +0000 (12:42 +0000)
committerjsg <jsg@openbsd.org>
Mon, 17 Jan 2022 12:42:30 +0000 (12:42 +0000)
commit892a73ca82b6403cd399bcdfa8382571904655be
treea80ae3848b8e53774c63280a32c9179764c7d317
parentf81bc88f6c0f5e56c5dacebf768ca110b23ff197
change irq work from interrupt context back to process context like
our 5.10 drm used (via a task) by changing from timeout_set() to
timeout_set_proc()

irq work is supposed to be in interrupt context but some path used on
inteldrm with gen 9 graphics sleeps.

Reported by Agnosto Dvonik on kaby lake and jcs@ and aja@ on comet lake.
For Agnosto Dvonik this occured when running firefox or mpv, for jcs@
when playing a video in firefox, for aja@ after 5 min of running gnome.
aja@ has run gnome for many hours with this change without problem.
sys/dev/pci/drm/include/linux/irq_work.h