xen/serial: scif: Rework how the parameters are found

clang 11 will throw the following error while build Xen:

scif-uart.c:333:33: error: cast to smaller integer type 'enum port_types' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]
    uart->params = &port_params[(enum port_types)match->data];
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

The error can be prevented by directly storing a pointer to the port
parameters rather than the a cast of the port type.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Julien Grall authored and Stefano Stabellini committed 2021-01-11 16:35:13 -08:00
1 parent 0e97d99f0e
commit edad4c760a
1 file changed
+3 -3
+3 -3
View File
@@ -286,8 +286,8 @@ static struct uart_driver __read_mostly scif_uart_driver = {
static const struct dt_device_match scif_uart_dt_match[] __initconst =
{
{ .compatible = "renesas,scif", .data = (void *)SCIF_PORT },
{ .compatible = "renesas,scifa", .data = (void *)SCIFA_PORT },
{ .compatible = "renesas,scif", .data = &port_params[SCIF_PORT] },
{ .compatible = "renesas,scifa", .data = &port_params[SCIFA_PORT] },
{ /* sentinel */ },
};
@@ -330,7 +330,7 @@ static int __init scif_uart_init(struct dt_device_node *dev,
match = dt_match_node(scif_uart_dt_match, dev);
ASSERT( match );
uart->params = &port_params[(enum port_types)match->data];
uart->params = match->data;
uart->vuart.base_addr = addr;
uart->vuart.size = size;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.