ata: libahci: Only warn for AHCI_HFLAG_MULTI_MSI set when genuine custom irq handler...
authorJohn Garry <john.garry@huawei.com>
Mon, 18 Feb 2019 17:43:33 +0000 (01:43 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 28 Feb 2019 21:07:48 +0000 (14:07 -0700)
For an AHCI controller with AHCI_HFLAG_MULTI_MSI flag set, we may get the
following log, regardless of whether a custom irq handler was implemented
or not:

[   14.700238] ahci 0000:74:03.0: both AHCI_HFLAG_MULTI_MSI flag set and custom irq handler implemented

This is because we can set hpriv->irq_handler to
ahci_single_level_irq_intr() if not already set, in
ahci_init_one()->ahci_pci_save_initial_config()->ahci_save_initial_config().

Stop having this warn being misleading by adding a check for
hpriv->irq_handler != ahci_single_level_irq_intr.

Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ata/libahci.c

index b5f57c69c48786e7b795b399b8a828a111534ec9..692782dddc0fea1c36e5d6471789c66339d99a25 100644 (file)
@@ -2599,7 +2599,8 @@ int ahci_host_activate(struct ata_host *host, struct scsi_host_template *sht)
        int rc;
 
        if (hpriv->flags & AHCI_HFLAG_MULTI_MSI) {
-               if (hpriv->irq_handler)
+               if (hpriv->irq_handler &&
+                   hpriv->irq_handler != ahci_single_level_irq_intr)
                        dev_warn(host->dev,
                                 "both AHCI_HFLAG_MULTI_MSI flag set and custom irq handler implemented\n");
                if (!hpriv->get_irq_vector) {