Messages in this thread | | | Date | Tue, 27 Nov 2018 11:11:35 +0100 | From | Greg KH <> | Subject | Re: [PATCH RESEND] tty/sysrq: Do not call sync directly from sysrq_do_reset() |
| |
On Tue, Nov 27, 2018 at 09:57:23AM +1300, Mark Tomlinson wrote: > 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: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz> > --- > drivers/tty/sysrq.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c > index ad1ee5d01b53..f2ca32c1ad7c 100644 > --- a/drivers/tty/sysrq.c > +++ b/drivers/tty/sysrq.c > @@ -660,8 +660,7 @@ static void sysrq_do_reset(struct timer_list *t) > > state->reset_requested = true; > > - ksys_sync(); > - kernel_restart(NULL); > + orderly_reboot();
Is this something new? Why haven't we had reports of this failing in the past? Or has something changed recently to cause this to now be needed?
thanks,
greg k-h
| |