Re: [PATCH] drivers/tty: 8250: only call fintek_8250_probe when doing port I/O

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21 April 2017 at 19:18, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote:
> Commit fa01e2ca9f53 ("serial: 8250: Integrate Fintek into 8250_base")
> modified the probing logic for PNP0501 devices, to remove a collision
> between the generic 16550A driver and the Fintek driver, which reused
> the same ACPI _HID.
>
> The Fintek device probe is now incorporated into the common 8250 probe
> path, and gets called for all discovered 16550A compatible devices,
> including ones that are MMIO mapped rather than IO mapped. However,
> the Fintek driver assumes the port base is a I/O address, and proceeds
> to probe some arbitrary offsets above it.
>
> This is generally a wrong thing to do, but on ARM systems (having no
> native port I/O), this may result in faulting accesses of completely
> unrelated MMIO regions in the PCI I/O space. Given that this is at
> serial probe time, this results in hard to diagnose crashes at boot.
>
> So let's restrict the Fintek probe to devices that we know are using
> port I/O in the first place.
>
> Fixes: fa01e2ca9f53 ("serial: 8250: Integrate Fintek into 8250_base")
> Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> ---
>
> May we have a cc stable for this one please? Thanks.
>
>  drivers/tty/serial/8250/8250_port.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
> index 6119516ef5fc..4c26d15ad7d9 100644
> --- a/drivers/tty/serial/8250/8250_port.c
> +++ b/drivers/tty/serial/8250/8250_port.c
> @@ -1337,7 +1337,7 @@ static void autoconfig(struct uart_8250_port *up)
>         /*
>          * Check if the device is a Fintek F81216A
>          */
> -       if (port->type == PORT_16550A)
> +       if (port->type == PORT_16550A && port->iotype == UPIO_PORT)
>                 fintek_8250_probe(up);
>
>         if (up->capabilities != old_capabilities) {
> --
> 2.9.3
>

Ping?
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux