octeontx2-af: Fix interrupt name strings
authorSunil Goutham <sgoutham@marvell.com>
Fri, 7 Jan 2022 06:55:05 +0000 (12:25 +0530)
committerJakub Kicinski <kuba@kernel.org>
Sat, 8 Jan 2022 03:07:06 +0000 (19:07 -0800)
Fixed interrupt name string logic which currently results
in wrong memory location being accessed while dumping
/proc/interrupts.

Fixes: 4826090719d4 ("octeontx2-af: Enable CPT HW interrupts")
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Link: https://lore.kernel.org/r/1641538505-28367-1-git-send-email-sbhatta@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c

index 45357de..a73a801 100644 (file)
@@ -172,14 +172,13 @@ static int cpt_10k_register_interrupts(struct rvu_block *block, int off)
 {
        struct rvu *rvu = block->rvu;
        int blkaddr = block->addr;
-       char irq_name[16];
        int i, ret;
 
        for (i = CPT_10K_AF_INT_VEC_FLT0; i < CPT_10K_AF_INT_VEC_RVU; i++) {
-               snprintf(irq_name, sizeof(irq_name), "CPTAF FLT%d", i);
+               sprintf(&rvu->irq_name[(off + i) * NAME_SIZE], "CPTAF FLT%d", i);
                ret = rvu_cpt_do_register_interrupt(block, off + i,
                                                    rvu_cpt_af_flt_intr_handler,
-                                                   irq_name);
+                                                   &rvu->irq_name[(off + i) * NAME_SIZE]);
                if (ret)
                        goto err;
                rvu_write64(rvu, blkaddr, CPT_AF_FLTX_INT_ENA_W1S(i), 0x1);
index 70bacd3..d0ab8f2 100644 (file)
@@ -41,7 +41,7 @@ static bool rvu_common_request_irq(struct rvu *rvu, int offset,
        struct rvu_devlink *rvu_dl = rvu->rvu_dl;
        int rc;
 
-       sprintf(&rvu->irq_name[offset * NAME_SIZE], name);
+       sprintf(&rvu->irq_name[offset * NAME_SIZE], "%s", name);
        rc = request_irq(pci_irq_vector(rvu->pdev, offset), fn, 0,
                         &rvu->irq_name[offset * NAME_SIZE], rvu_dl);
        if (rc)