drm - Fix system lockup bug in signal_pending_state()
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 17 Jun 2019 22:45:59 +0000 (15:45 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 17 Jun 2019 22:45:59 +0000 (15:45 -0700)
commit536555aba12298470a11fd08ce255f3c62812162
tree8adedac0dce2cacf92d498b154891d566ca5e396
parentb222333699b9bf614a61cfae786653f9287c8768
drm - Fix system lockup bug in signal_pending_state()

* Fix a system lockup bug in signal_pending_state().  It was
  possible for the routine to indicate that no signal was pending
  for an interruptible state when a signal was in fact pending,
  causing a live-lock in a lksleep() loop.

* The proper API is to allow any signal to interrupt when the
  thread is in an interruptible state and to only allow a KILL
  signal to interrupt when the thread is in a non-interruptible
  state.

Testing-by: dillon, tuxillo
Reviewed-by: ftigeot
sys/dev/drm/include/linux/sched.h