On 13.05.21 12:25, Greg Kroah-Hartman wrote: > On Thu, May 13, 2021 at 12:03:02PM +0200, Juergen Gross wrote: >> Xen frontends shouldn't BUG() in case of illegal data received from >> their backends. So replace the BUG_ON()s when reading illegal data from >> the ring page with negative return values. >> >> Signed-off-by: Juergen Gross >> --- >> drivers/tty/hvc/hvc_xen.c | 15 +++++++++++++-- >> 1 file changed, 13 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c >> index 92c9a476defc..30d7ffb1e04c 100644 >> --- a/drivers/tty/hvc/hvc_xen.c >> +++ b/drivers/tty/hvc/hvc_xen.c >> @@ -86,6 +86,11 @@ static int __write_console(struct xencons_info *xencons, >> cons = intf->out_cons; >> prod = intf->out_prod; >> mb(); /* update queue values before going on */ >> + >> + if (WARN_ONCE((prod - cons) > sizeof(intf->out), >> + "Illegal ring page indices")) >> + return -EINVAL; > > How nice, you just rebooted on panic-on-warn systems :( > >> + >> BUG_ON((prod - cons) > sizeof(intf->out)); > > Why keep this line? Failed to delete it, sorry. > > Please just fix this up properly, if userspace can trigger this, then > both the WARN_ON() and BUG_ON() are not correct and need to be correctly > handled. It can be triggered by the console backend, but I agree a WARN isn't the way to go here. Juergen