From: Ian Campbell Date: Thu, 22 Aug 2013 16:01:59 +0000 (+0100) Subject: pl011: early_panic if baud rate not set in hardware X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6448 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2050ad703c65ed997f1328af702054d1960fb168;p=xen.git pl011: early_panic if baud rate not set in hardware Now that the driver defaults to BAUD_AUTO this can happen if the early uart != console or if early printk isn't in use. The following division by zero causes a trap but that uses regular printk and not early_printk, so it is never seen. Signed-off-by: Ian Campbell Acked-by: Julien Grall --- diff --git a/xen/drivers/char/pl011.c b/xen/drivers/char/pl011.c index e4bd702f3f..3ea0d41f8c 100644 --- a/xen/drivers/char/pl011.c +++ b/xen/drivers/char/pl011.c @@ -104,6 +104,8 @@ static void __init pl011_init_preirq(struct serial_port *port) { /* Baud rate already set: read it out from the divisor latch. */ divisor = (pl011_read(uart, IBRD) << 6) | (pl011_read(uart, FBRD)); + if (!divisor) + early_panic("pl011: No Baud rate configured\n"); uart->baud = (uart->clock_hz << 2) / divisor; } /* This write must follow FBRD and IBRD writes. */