Patch "octeontx2-pf: Avoid use of GFP_KERNEL in atomic context" has been added to the 5.15-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

    octeontx2-pf: Avoid use of GFP_KERNEL in atomic context

to the 5.15-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:
     octeontx2-pf-avoid-use-of-gfp_kernel-in-atomic-conte.patch
and it can be found in the queue-5.15 subdirectory.

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



commit 8fbeb399a594afd750cae0af07585813b2e54c5c
Author: Geetha sowjanya <gakula@xxxxxxxxxxx>
Date:   Fri Jan 13 11:49:02 2023 +0530

    octeontx2-pf: Avoid use of GFP_KERNEL in atomic context
    
    [ Upstream commit 87b93b678e95c7d93fe6a55b0e0fbda26d8c7760 ]
    
    Using GFP_KERNEL in preemption disable context, causing below warning
    when CONFIG_DEBUG_ATOMIC_SLEEP is enabled.
    
    [   32.542271] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:274
    [   32.550883] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper/0
    [   32.558707] preempt_count: 1, expected: 0
    [   32.562710] RCU nest depth: 0, expected: 0
    [   32.566800] CPU: 3 PID: 1 Comm: swapper/0 Tainted: G        W          6.2.0-rc2-00269-gae9dcb91c606 #7
    [   32.576188] Hardware name: Marvell CN106XX board (DT)
    [   32.581232] Call trace:
    [   32.583670]  dump_backtrace.part.0+0xe0/0xf0
    [   32.587937]  show_stack+0x18/0x30
    [   32.591245]  dump_stack_lvl+0x68/0x84
    [   32.594900]  dump_stack+0x18/0x34
    [   32.598206]  __might_resched+0x12c/0x160
    [   32.602122]  __might_sleep+0x48/0xa0
    [   32.605689]  __kmem_cache_alloc_node+0x2b8/0x2e0
    [   32.610301]  __kmalloc+0x58/0x190
    [   32.613610]  otx2_sq_aura_pool_init+0x1a8/0x314
    [   32.618134]  otx2_open+0x1d4/0x9d0
    
    To avoid use of GFP_ATOMIC for memory allocation, disable preemption
    after all memory allocation is done.
    
    Fixes: 4af1b64f80fb ("octeontx2-pf: Fix lmtst ID used in aura free")
    Signed-off-by: Geetha sowjanya <gakula@xxxxxxxxxxx>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@xxxxxxxxxxx>
    Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
index f6306eedd59b..30d4c0ad712d 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
@@ -1316,7 +1316,6 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf)
 	if (err)
 		goto fail;
 
-	get_cpu();
 	/* Allocate pointers and free them to aura/pool */
 	for (qidx = 0; qidx < hw->tx_queues; qidx++) {
 		pool_id = otx2_get_pool_idx(pfvf, AURA_NIX_SQ, qidx);
@@ -1334,13 +1333,14 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf)
 			err = otx2_alloc_rbuf(pfvf, pool, &bufptr);
 			if (err)
 				goto err_mem;
+			get_cpu();
 			pfvf->hw_ops->aura_freeptr(pfvf, pool_id, bufptr);
+			put_cpu();
 			sq->sqb_ptrs[sq->sqb_count++] = (u64)bufptr;
 		}
 	}
 
 err_mem:
-	put_cpu();
 	return err ? -ENOMEM : 0;
 
 fail:



[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