|
@@ -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,
|
|
static int iwl_pcie_init_msix_handler(struct pci_dev *pdev,
|
|
struct iwl_trans_pcie *trans_pcie)
|
|
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++) {
|
|
for (i = 0; i < trans_pcie->alloc_vecs; i++) {
|
|
int ret;
|
|
int ret;
|
|
struct msix_entry *msix_entry;
|
|
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];
|
|
msix_entry = &trans_pcie->msix_entries[i];
|
|
ret = devm_request_threaded_irq(&pdev->dev,
|
|
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_msix_handler :
|
|
iwl_pcie_irq_rx_msix_handler,
|
|
iwl_pcie_irq_rx_msix_handler,
|
|
IRQF_SHARED,
|
|
IRQF_SHARED,
|
|
- DRV_NAME,
|
|
|
|
|
|
+ qname,
|
|
msix_entry);
|
|
msix_entry);
|
|
if (ret) {
|
|
if (ret) {
|
|
IWL_ERR(trans_pcie->trans,
|
|
IWL_ERR(trans_pcie->trans,
|