linux/drivers/tty/serial/8250
Ard Biesheuvel 4c4fc90964 drivers/tty: 8250: only call fintek_8250_probe when doing port I/O
Commit fa01e2ca9f ("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: fa01e2ca9f ("serial: 8250: Integrate Fintek into 8250_base")
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-18 16:39:10 +02:00
..
8250_accent.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_acorn.c tty: serial: 8250: Fix whitespace errors 2016-02-06 23:15:53 -08:00
8250_bcm2835aux.c serial: bcm2835: fix unsigned int issue with irq 2016-02-14 17:39:36 -08:00
8250_boca.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_core.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
8250_dma.c serial: 8250_dma: power off device after TX is done 2016-11-16 10:57:26 +01:00
8250_dw.c Merge 4.11-rc4 into tty-next 2017-03-29 08:58:53 +02:00
8250_early.c serial: 8250_early: Add earlycon support for Palmchip UART 2017-04-18 17:47:42 +02:00
8250_em.c serial: 8250: remove the redundant include 2015-03-26 22:21:08 +01:00
8250_exar_st16c554.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_exar.c serial: 8250_exar: Fix spelling of "driver" 2017-03-14 10:59:04 +08:00
8250_fintek.c serial: 8250_fintek: Enable high speed mode on Fintek F81866 2017-03-17 14:17:11 +09:00
8250_fourport.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_fsl.c serial: export fsl8250_handle_irq 2015-11-20 16:19:54 -08:00
8250_gsc.c tty: serial: 8250: 8250_gsc:- Handle return NULL error from ioremap_nocache 2017-01-19 14:20:23 +01:00
8250_hp300.c serial: hp300: mask the warning for people just doing build coverage 2017-01-25 11:08:30 +01:00
8250_hub6.c tty: serial: 8250: Fix whitespace errors 2016-02-06 23:15:53 -08:00
8250_ingenic.c serial: 8250_ingenic: drop #if conditional surrounding earlycon code 2016-06-25 14:31:04 -07:00
8250_lpc18xx.c serial: 8250: add LPC18xx/43xx UART driver 2015-06-01 06:56:33 +09:00
8250_lpss.c serial: 8250_lpss: Unconditionally set PCI master for Quark 2017-03-31 15:36:54 +02:00
8250_mid.c serial: 8250_mid: set PCI master only for DMA capable device 2017-01-19 14:20:23 +01:00
8250_moxa.c serial: 8250: moxa: Store num_ports in brd 2017-01-12 11:51:25 +01:00
8250_mtk.c serial: 8250_mtk: support big baud rate. 2016-08-31 16:01:26 +02:00
8250_of.c 8250: of: remove remnants of generic of_serial driver 2017-01-27 09:23:36 +01:00
8250_omap.c serial: 8250_omap: Fix probe and remove for PM runtime 2017-01-25 11:08:30 +01:00
8250_pci.c serial: pci: Remove unused pci_boards entries 2017-02-10 15:12:39 +01:00
8250_pnp.c tty: serial: 8250: Fix indentation warnings 2016-02-06 23:15:53 -08:00
8250_port.c drivers/tty: 8250: only call fintek_8250_probe when doing port I/O 2017-05-18 16:39:10 +02:00
8250_pxa.c serial: pxa2xx: mark PM functions as __maybe_unused 2016-11-10 14:50:46 +01:00
8250_uniphier.c serial: 8250_uniphier: avoid locking for FCR register write 2016-11-10 14:30:09 +01:00
8250.h serial: 8250: Add IrDA to UART capabilities 2016-11-16 10:59:38 +01:00
Kconfig serial: 8250_EXAR: fix duplicate Kconfig text and add missing help text 2017-03-31 17:26:20 +02:00
Makefile serial: exar: split out the exar code from 8250_pci 2017-02-03 10:12:16 +01:00
serial_cs.c tty: serial: 8250: Fix multi-line strings 2016-02-06 23:15:53 -08:00