iwlwifi: pcie: give a meaningful name to interrupt request
authorSharon Dvir <sharon.dvir@intel.com>
Wed, 17 Aug 2016 12:35:09 +0000 (15:35 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 19 Oct 2016 09:46:33 +0000 (12:46 +0300)
Instead of passing DRV_NAME pass a string that
represents the reason for the interrupt.

Signed-off-by: Sharon Dvir <sharon.dvir@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/trans.c

index ae95533e587d9fd5331694cc70b28e369fdd28d0..b10e3633df1a91ac67061502a332af0bef3c8014 100644 (file)
@@ -1598,6 +1598,29 @@ static void iwl_pcie_irq_set_affinity(struct iwl_trans *trans)
        }
 }
 
+static const char *queue_name(struct device *dev,
+                             struct iwl_trans_pcie *trans_p, int i)
+{
+       if (trans_p->shared_vec_mask) {
+               int vec = trans_p->shared_vec_mask &
+                         IWL_SHARED_IRQ_FIRST_RSS ? 1 : 0;
+
+               if (i == 0)
+                       return DRV_NAME ": shared IRQ";
+
+               return devm_kasprintf(dev, GFP_KERNEL,
+                                     DRV_NAME ": queue %d", i + vec);
+       }
+       if (i == 0)
+               return DRV_NAME ": default queue";
+
+       if (i == trans_p->alloc_vecs - 1)
+               return DRV_NAME ": exception";
+
+       return devm_kasprintf(dev, GFP_KERNEL,
+                             DRV_NAME  ": queue %d", i);
+}
+
 static int iwl_pcie_init_msix_handler(struct pci_dev *pdev,
                                      struct iwl_trans_pcie *trans_pcie)
 {
@@ -1606,6 +1629,10 @@ static int iwl_pcie_init_msix_handler(struct pci_dev *pdev,
        for (i = 0; i < trans_pcie->alloc_vecs; i++) {
                int ret;
                struct msix_entry *msix_entry;
+               const char *qname = queue_name(&pdev->dev, trans_pcie, i);
+
+               if (!qname)
+                       return -ENOMEM;
 
                msix_entry = &trans_pcie->msix_entries[i];
                ret = devm_request_threaded_irq(&pdev->dev,
@@ -1615,7 +1642,7 @@ static int iwl_pcie_init_msix_handler(struct pci_dev *pdev,
                                                iwl_pcie_irq_msix_handler :
                                                iwl_pcie_irq_rx_msix_handler,
                                                IRQF_SHARED,
-                                               DRV_NAME,
+                                               qname,
                                                msix_entry);
                if (ret) {
                        IWL_ERR(trans_pcie->trans,