From: Wei Xu Date: Wed, 26 Feb 2020 09:56:23 +0000 (+0100) Subject: ns16550: Re-order the serial port address checking X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~631 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=102b439f910e761bf92eed9fdf45d49bc6fba5d4;p=xen.git ns16550: Re-order the serial port address checking The serial port address space ID qualifies the address. Whether a value of zero for the serial port address can sensibly mean "disabled" depends on the address space ID. Hence check the address space ID before checking the address. Signed-off-by: Wei Xu Reviewed-by: Jan Beulich --- diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index ab068c56dc..d8b52eb813 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -1645,6 +1645,12 @@ static int __init ns16550_acpi_uart_init(const void *data) spcr = container_of(table, struct acpi_table_spcr, header); + if ( unlikely(spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY) ) + { + printk("ns16550: Address space type is not mmio\n"); + return -EINVAL; + } + /* * The serial port address may be 0 for example * if the console redirection is disabled. @@ -1655,12 +1661,6 @@ static int __init ns16550_acpi_uart_init(const void *data) return -EINVAL; } - if ( unlikely(spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY) ) - { - printk("ns16550: Address space type is not mmio\n"); - return -EINVAL; - } - ns16550_init_common(uart); /*