Patch "net/mlx5e: add missing cpu_to_node to kvzalloc_node in mlx5e_open_xdpredirect_sq" has been added to the 6.13-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

    net/mlx5e: add missing cpu_to_node to kvzalloc_node in mlx5e_open_xdpredirect_sq

to the 6.13-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:
     net-mlx5e-add-missing-cpu_to_node-to-kvzalloc_node-i.patch
and it can be found in the queue-6.13 subdirectory.

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



commit 1157d9ebce7ee0bcc7512b1bc0a6959134451480
Author: Stanislav Fomichev <sdf@xxxxxxxxxxx>
Date:   Wed Jan 22 16:04:07 2025 -0800

    net/mlx5e: add missing cpu_to_node to kvzalloc_node in mlx5e_open_xdpredirect_sq
    
    [ Upstream commit 979284535aaf12a287a2f43d9d5dfcbdc1dc4cac ]
    
    kvzalloc_node is not doing a runtime check on the node argument
    (__alloc_pages_node_noprof does have a VM_BUG_ON, but it expands to
    nothing on !CONFIG_DEBUG_VM builds), so doing any ethtool/netlink
    operation that calls mlx5e_open on a CPU that's larger that MAX_NUMNODES
    triggers OOB access and panic (see the trace below).
    
    Add missing cpu_to_node call to convert cpu id to node id.
    
    [  165.427394] mlx5_core 0000:5c:00.0 beth1: Link up
    [  166.479327] BUG: unable to handle page fault for address: 0000000800000010
    [  166.494592] #PF: supervisor read access in kernel mode
    [  166.505995] #PF: error_code(0x0000) - not-present page
    ...
    [  166.816958] Call Trace:
    [  166.822380]  <TASK>
    [  166.827034]  ? __die_body+0x64/0xb0
    [  166.834774]  ? page_fault_oops+0x2cd/0x3f0
    [  166.843862]  ? exc_page_fault+0x63/0x130
    [  166.852564]  ? asm_exc_page_fault+0x22/0x30
    [  166.861843]  ? __kvmalloc_node_noprof+0x43/0xd0
    [  166.871897]  ? get_partial_node+0x1c/0x320
    [  166.880983]  ? deactivate_slab+0x269/0x2b0
    [  166.890069]  ___slab_alloc+0x521/0xa90
    [  166.898389]  ? __kvmalloc_node_noprof+0x43/0xd0
    [  166.908442]  __kmalloc_node_noprof+0x216/0x3f0
    [  166.918302]  ? __kvmalloc_node_noprof+0x43/0xd0
    [  166.928354]  __kvmalloc_node_noprof+0x43/0xd0
    [  166.938021]  mlx5e_open_channels+0x5e2/0xc00
    [  166.947496]  mlx5e_open_locked+0x3e/0xf0
    [  166.956201]  mlx5e_open+0x23/0x50
    [  166.963551]  __dev_open+0x114/0x1c0
    [  166.971292]  __dev_change_flags+0xa2/0x1b0
    [  166.980378]  dev_change_flags+0x21/0x60
    [  166.988887]  do_setlink+0x38d/0xf20
    [  166.996628]  ? ep_poll_callback+0x1b9/0x240
    [  167.005910]  ? __nla_validate_parse.llvm.10713395753544950386+0x80/0xd70
    [  167.020782]  ? __wake_up_sync_key+0x52/0x80
    [  167.030066]  ? __mutex_lock+0xff/0x550
    [  167.038382]  ? security_capable+0x50/0x90
    [  167.047279]  rtnl_setlink+0x1c9/0x210
    [  167.055403]  ? ep_poll_callback+0x1b9/0x240
    [  167.064684]  ? security_capable+0x50/0x90
    [  167.073579]  rtnetlink_rcv_msg+0x2f9/0x310
    [  167.082667]  ? rtnetlink_bind+0x30/0x30
    [  167.091173]  netlink_rcv_skb+0xb1/0xe0
    [  167.099492]  netlink_unicast+0x20f/0x2e0
    [  167.108191]  netlink_sendmsg+0x389/0x420
    [  167.116896]  __sys_sendto+0x158/0x1c0
    [  167.125024]  __x64_sys_sendto+0x22/0x30
    [  167.133534]  do_syscall_64+0x63/0x130
    [  167.141657]  ? __irq_exit_rcu.llvm.17843942359718260576+0x52/0xd0
    [  167.155181]  entry_SYSCALL_64_after_hwframe+0x4b/0x53
    
    Fixes: bb135e40129d ("net/mlx5e: move XDP_REDIRECT sq to dynamic allocation")
    Signed-off-by: Stanislav Fomichev <sdf@xxxxxxxxxxx>
    Reviewed-by: Joe Damato <jdamato@xxxxxxxxxx>
    Reviewed-by: Tariq Toukan <tariqt@xxxxxxxxxx>
    Link: https://patch.msgid.link/20250123000407.3464715-1-sdf@xxxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 0ec17c276bdd2..cb93f46eaa7c3 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -2087,7 +2087,7 @@ static struct mlx5e_xdpsq *mlx5e_open_xdpredirect_sq(struct mlx5e_channel *c,
 	struct mlx5e_xdpsq *xdpsq;
 	int err;
 
-	xdpsq = kvzalloc_node(sizeof(*xdpsq), GFP_KERNEL, c->cpu);
+	xdpsq = kvzalloc_node(sizeof(*xdpsq), GFP_KERNEL, cpu_to_node(c->cpu));
 	if (!xdpsq)
 		return ERR_PTR(-ENOMEM);
 




[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