Hi Jan, On 2020/2/21 23:07, Jan Beulich wrote: > On 21.02.2020 15:57, Julien Grall wrote: >> On 21/02/2020 14:02, Jan Beulich wrote: >>> On 21.02.2020 03:22, Wei Xu wrote: >>>> --- a/xen/drivers/char/ns16550.c >>>> +++ b/xen/drivers/char/ns16550.c >>>> @@ -1620,6 +1620,85 @@ DT_DEVICE_START(ns16550, "NS16550 UART", >>>> DEVICE_SERIAL) >>>> DT_DEVICE_END >>>> >>>> #endif /* HAS_DEVICE_TREE */ >>>> + >>>> +#if defined(CONFIG_ACPI) && defined(CONFIG_ARM) >>>> +#include <xen/acpi.h> >>>> + >>>> +static int __init ns16550_acpi_uart_init(const void *data) >>>> +{ >>>> + struct acpi_table_header *table; >>>> + struct acpi_table_spcr *spcr; >>>> + acpi_status status; >>>> + /* >>>> + * Same as the DT part. >>>> + * Only support one UART on ARM which happen to be ns16550_com[0]. >>>> + */ >>>> + struct ns16550 *uart = &ns16550_com[0]; >>>> + >>>> + status = acpi_get_table(ACPI_SIG_SPCR, 0, &table); >>>> + if ( ACPI_FAILURE(status) ) >>>> + { >>>> + printk("ns16550: Failed to get SPCR table\n"); >>>> + return -EINVAL; >>>> + } >>>> + >>>> + spcr = container_of(table, struct acpi_table_spcr, header); >>>> + >>>> + /* >>>> + * The serial port address may be 0 for example >>>> + * if the console redirection is disabled. >>>> + */ >>>> + if ( unlikely(!spcr->serial_port.address) ) >>>> + { >>>> + printk("ns16550: Console redirection is disabled\n"); >>>> + 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; >>>> + } >>> >>> The space_id field qualifies the address one, i.e. whether a value of >>> zero can sensibly mean "disabled" depends on the address space. Hence >>> logically the address space check should come first. >>> >>> This is the last thing I'd like to see changed. I won't give the >>> patch my ack though, as I think it should be an Arm maintainer to ack >>> it. >> >> Acked-by: Julien Grall <jul...@xen.org> >> >> Although, a reviewed-by tag from you would be nice as you did most of >> the review for this patch. > > Well, to clarify - this is one of the very few (afaict) cases where our > R-b implying A-b (when people are entitled to ack the respective code) > gets in the way. If this wasn't the case, I'd have given the former, > making it clear (also later from just looking at the resulting commit) > that the (only) ack came from an Arm person.
I will check the address space in the v5 and add your R-b. Thanks! Best Regards, Wei > > Jan > > . > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel