Patch "pds_core: use correct index to mask irq" has been added to the 6.5-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    pds_core: use correct index to mask irq

to the 6.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     pds_core-use-correct-index-to-mask-irq.patch
and it can be found in the queue-6.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0d0731a83964fe1aab9d309a5287ac660deb0883
Author: Shannon Nelson <shannon.nelson@xxxxxxx>
Date:   Mon Nov 13 10:32:56 2023 -0800

    pds_core: use correct index to mask irq
    
    [ Upstream commit 09d4c14c6c5e6e781a3879fed7f8e116a18b8c65 ]
    
    Use the qcq's interrupt index, not the irq number, to mask
    the interrupt.  Since the irq number can be out of range from
    the number of possible interrupts, we can end up accessing
    and potentially scribbling on out-of-range and/or unmapped
    memory, making the kernel angry.
    
        [ 3116.039364] BUG: unable to handle page fault for address: ffffbeea1c3edf84
        [ 3116.047059] #PF: supervisor write access in kernel mode
        [ 3116.052895] #PF: error_code(0x0002) - not-present page
        [ 3116.058636] PGD 100000067 P4D 100000067 PUD 1001f2067 PMD 10f82e067 PTE 0
        [ 3116.066221] Oops: 0002 [#1] SMP NOPTI
        [ 3116.092948] RIP: 0010:iowrite32+0x9/0x76
        [ 3116.190452] Call Trace:
        [ 3116.193185]  <IRQ>
        [ 3116.195430]  ? show_trace_log_lvl+0x1d6/0x2f9
        [ 3116.200298]  ? show_trace_log_lvl+0x1d6/0x2f9
        [ 3116.205166]  ? pdsc_adminq_isr+0x43/0x55 [pds_core]
        [ 3116.210618]  ? __die_body.cold+0x8/0xa
        [ 3116.214806]  ? page_fault_oops+0x16d/0x1ac
        [ 3116.219382]  ? exc_page_fault+0xbe/0x13b
        [ 3116.223764]  ? asm_exc_page_fault+0x22/0x27
        [ 3116.228440]  ? iowrite32+0x9/0x76
        [ 3116.232143]  pdsc_adminq_isr+0x43/0x55 [pds_core]
        [ 3116.237627]  __handle_irq_event_percpu+0x3a/0x184
        [ 3116.243088]  handle_irq_event+0x57/0xb0
        [ 3116.247575]  handle_edge_irq+0x87/0x225
        [ 3116.252062]  __common_interrupt+0x3e/0xbc
        [ 3116.256740]  common_interrupt+0x7b/0x98
        [ 3116.261216]  </IRQ>
        [ 3116.263745]  <TASK>
        [ 3116.266268]  asm_common_interrupt+0x22/0x27
    
    Reported-by: Joao Martins <joao.m.martins@xxxxxxxxxx>
    Fixes: 01ba61b55b20 ("pds_core: Add adminq processing and commands")
    Signed-off-by: Shannon Nelson <shannon.nelson@xxxxxxx>
    Link: https://lore.kernel.org/r/20231113183257.71110-2-shannon.nelson@xxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/amd/pds_core/adminq.c b/drivers/net/ethernet/amd/pds_core/adminq.c
index 045fe133f6ee9..5beadabc21361 100644
--- a/drivers/net/ethernet/amd/pds_core/adminq.c
+++ b/drivers/net/ethernet/amd/pds_core/adminq.c
@@ -146,7 +146,7 @@ irqreturn_t pdsc_adminq_isr(int irq, void *data)
 	}
 
 	queue_work(pdsc->wq, &qcq->work);
-	pds_core_intr_mask(&pdsc->intr_ctrl[irq], PDS_CORE_INTR_MASK_CLEAR);
+	pds_core_intr_mask(&pdsc->intr_ctrl[qcq->intx], PDS_CORE_INTR_MASK_CLEAR);
 
 	return IRQ_HANDLED;
 }



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux