drm/i915: avoid non-atomic sysrq execution
The sysrq functions are executed in hardirq context, so we shouldn't be calling sleeping functions from them, like mutex_locks or memory allocations. Fix up the i915 sysrq handler to avoid this. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
42c2798b35
commit
b66d18ddb1
1 changed files with 7 additions and 1 deletions
|
@ -857,9 +857,15 @@ void intelfb_restore(void)
|
|||
drm_crtc_helper_set_config(&kernelfb_mode);
|
||||
}
|
||||
|
||||
static void intelfb_restore_work_fn(struct work_struct *ignored)
|
||||
{
|
||||
intelfb_restore();
|
||||
}
|
||||
static DECLARE_WORK(intelfb_restore_work, intelfb_restore_work_fn);
|
||||
|
||||
static void intelfb_sysrq(int dummy1, struct tty_struct *dummy3)
|
||||
{
|
||||
intelfb_restore();
|
||||
schedule_work(&intelfb_restore_work);
|
||||
}
|
||||
|
||||
static struct sysrq_key_op sysrq_intelfb_restore_op = {
|
||||
|
|
Loading…
Add table
Reference in a new issue