serial: 8250_pci: Replace custom code with pci_match_id()
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Thu, 24 Jan 2019 21:51:22 +0000 (23:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Feb 2019 08:55:50 +0000 (09:55 +0100)
serial_pci_is_blacklisted() is very similar to pci_match_id() implementation.
Replace it with the latter.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_pci.c

index 48bd694..d0957b2 100644 (file)
@@ -3375,6 +3375,9 @@ static const struct pci_device_id blacklist[] = {
        /* Exar devices */
        { PCI_VDEVICE(EXAR, PCI_ANY_ID), },
        { PCI_VDEVICE(COMMTECH, PCI_ANY_ID), },
+
+       /* End of the black list */
+       { }
 };
 
 static int serial_pci_is_class_communication(struct pci_dev *dev)
@@ -3392,25 +3395,6 @@ static int serial_pci_is_class_communication(struct pci_dev *dev)
        return 0;
 }
 
-static int serial_pci_is_blacklisted(struct pci_dev *dev)
-{
-       const struct pci_device_id *bldev;
-
-       /*
-        * Do not access blacklisted devices that are known not to
-        * feature serial ports or are handled by other modules.
-        */
-       for (bldev = blacklist;
-            bldev < blacklist + ARRAY_SIZE(blacklist);
-            bldev++) {
-               if (dev->vendor == bldev->vendor &&
-                   dev->device == bldev->device)
-                       return -ENODEV;
-       }
-
-       return 0;
-}
-
 /*
  * Given a complete unknown PCI device, try to use some heuristics to
  * guess what the configuration might be, based on the pitiful PCI
@@ -3634,6 +3618,7 @@ pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
        struct pci_serial_quirk *quirk;
        struct serial_private *priv;
        const struct pciserial_board *board;
+       const struct pci_device_id *exclude;
        struct pciserial_board tmp;
        int rc;
 
@@ -3652,9 +3637,9 @@ pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
 
        board = &pci_boards[ent->driver_data];
 
-       rc = serial_pci_is_blacklisted(dev);
-       if (rc)
-               return rc;
+       exclude = pci_match_id(blacklist, dev);
+       if (exclude)
+               return -ENODEV;
 
        rc = pcim_enable_device(dev);
        pci_save_state(dev);