Commit 8fefbc6d authored by Mark Tomlinson's avatar Mark Tomlinson Committed by Greg Kroah-Hartman
Browse files

tty/sysrq: Do not call sync directly from sysrq_do_reset()



sysrq_do_reset() is called in softirq context, so it cannot call
sync() directly. Instead, call orderly_reboot(), which creates a work
item to run /sbin/reboot, or do emergency_sync and restart if the
command fails.

Signed-off-by: default avatarMark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 85b5c1dd
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -653,8 +653,7 @@ static void sysrq_do_reset(struct timer_list *t)

	state->reset_requested = true;

	ksys_sync();
	kernel_restart(NULL);
	orderly_reboot();
}

static void sysrq_handle_reset_request(struct sysrq_state *state)