aboutsummaryrefslogtreecommitdiff
path: root/drivers/tty
diff options
context:
space:
mode:
authorGravatar Andy Shevchenko <andriy.shevchenko@linux.intel.com> 2024-02-19 17:04:59 +0200
committerGravatar Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2024-03-02 21:52:06 +0100
commit5bc430afeba5d5101765c1f1a4437a90218b00b9 (patch)
tree5c454589e47339b32e1e4c074d90b0e772585bbf /drivers/tty
parentserial: 8250_exar: Use dev_get_drvdata() directly in PM callbacks (diff)
downloadlinux-5bc430afeba5d5101765c1f1a4437a90218b00b9.tar.gz
linux-5bc430afeba5d5101765c1f1a4437a90218b00b9.tar.bz2
linux-5bc430afeba5d5101765c1f1a4437a90218b00b9.zip
serial: 8250_exar: Clear interrupts before registering handler
While now there is no issue if IRQ is fired before we clearing the interrupts as the handler does the same, but strictly speaking it might be problematic if IRQ handler wants to do something more. Move clearing interrupt code to be called before registering the IRQ handler. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20240219150627.2101198-4-andriy.shevchenko@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r--drivers/tty/serial/8250/8250_exar.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
index 5687b21b328d..9ab30d974e29 100644
--- a/drivers/tty/serial/8250/8250_exar.c
+++ b/drivers/tty/serial/8250/8250_exar.c
@@ -713,14 +713,14 @@ exar_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
uart.port.irq = pci_irq_vector(pcidev, 0);
uart.port.dev = &pcidev->dev;
+ /* Clear interrupts */
+ exar_misc_clear(priv);
+
rc = devm_request_irq(&pcidev->dev, uart.port.irq, exar_misc_handler,
IRQF_SHARED, "exar_uart", priv);
if (rc)
return rc;
- /* Clear interrupts */
- exar_misc_clear(priv);
-
for (i = 0; i < nr_ports && i < maxnr; i++) {
rc = board->setup(priv, pcidev, &uart, i);
if (rc) {