hpsa: add interrupt number to /proc/interrupts interrupt name
authorRobert Elliott <elliott@hp.com>
Thu, 23 Apr 2015 14:34:58 +0000 (09:34 -0500)
committerJames Bottomley <JBottomley@Odin.com>
Sun, 31 May 2015 18:42:03 +0000 (11:42 -0700)
Add the interrupt number to the interrupt names that
appear in /proc/interrupts, so they are unique

Also, delete the IRQ and DAC prints.  Other parts of the kernel
already print the IRQ assignments, and dual-address-cycle support
has not been interesting since the parallel PCI bus went from
32 to 64 bits wide.

Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Reviewed-by: Hannes Reinecke <hare@Suse.de>
Signed-off-by: Robert Elliott <elliott@hp.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/hpsa.c
drivers/scsi/hpsa.h

index 8ef908cc1a2c4758b3d53d467104a672a46f87a4..be837785b04087eeae58c84a7673a556c8f55ce1 100644 (file)
@@ -7291,8 +7291,9 @@ static int hpsa_request_irqs(struct ctlr_info *h,
        if (h->intr_mode == PERF_MODE_INT && h->msix_vector > 0) {
                /* If performant mode and MSI-X, use multiple reply queues */
                for (i = 0; i < h->msix_vector; i++) {
+                       sprintf(h->intrname[i], "%s-msix%d", h->devname, i);
                        rc = request_irq(h->intr[i], msixhandler,
-                                       0, h->devname,
+                                       0, h->intrname[i],
                                        &h->q[i]);
                        if (rc) {
                                int j;
@@ -7313,12 +7314,22 @@ static int hpsa_request_irqs(struct ctlr_info *h,
        } else {
                /* Use single reply pool */
                if (h->msix_vector > 0 || h->msi_vector) {
+                       if (h->msix_vector)
+                               sprintf(h->intrname[h->intr_mode],
+                                       "%s-msix", h->devname);
+                       else
+                               sprintf(h->intrname[h->intr_mode],
+                                       "%s-msi", h->devname);
                        rc = request_irq(h->intr[h->intr_mode],
-                               msixhandler, 0, h->devname,
+                               msixhandler, 0,
+                               h->intrname[h->intr_mode],
                                &h->q[h->intr_mode]);
                } else {
+                       sprintf(h->intrname[h->intr_mode],
+                               "%s-intx", h->devname);
                        rc = request_irq(h->intr[h->intr_mode],
-                               intxhandler, IRQF_SHARED, h->devname,
+                               intxhandler, IRQF_SHARED,
+                               h->intrname[h->intr_mode],
                                &h->q[h->intr_mode]);
                }
                irq_set_affinity_hint(h->intr[h->intr_mode], NULL);
@@ -7711,9 +7722,6 @@ reinit_after_soft_reset:
        rc = hpsa_request_irqs(h, do_hpsa_intr_msi, do_hpsa_intr_intx);
        if (rc)
                goto clean3;    /* pci, lockup, aer/h */
-       dev_info(&pdev->dev, "%s: <0x%x> at IRQ %d%s using DAC\n",
-              h->devname, pdev->device,
-              h->intr[h->intr_mode], dac ? "" : " not");
        rc = hpsa_alloc_cmd_pool(h);
        if (rc)
                goto clean4;    /* irq, pci, lockup, aer/h */
index 7cb8586dc192dbfc24a3f7d84a788c805de44fdf..3ec8934f0c709e75cd2e66cc97b9a5a66e00b1e8 100644 (file)
@@ -220,6 +220,7 @@ struct ctlr_info {
        int remove_in_progress;
        /* Address of h->q[x] is passed to intr handler to know which queue */
        u8 q[MAX_REPLY_QUEUES];
+       char intrname[MAX_REPLY_QUEUES][16];    /* "hpsa0-msix00" names */
        u32 TMFSupportFlags; /* cache what task mgmt funcs are supported. */
 #define HPSATMF_BITS_SUPPORTED  (1 << 0)
 #define HPSATMF_PHYS_LUN_RESET  (1 << 1)