diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 10:06:00 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 10:06:00 +0000 |
commit | b15a952c52a6825376d3e7f6c1bf5c886c6d8b74 (patch) | |
tree | 1500f2f8f276908a36d8126cb632c0d6b1276764 /debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch | |
parent | Adding upstream version 5.10.209. (diff) | |
download | linux-debian.tar.xz linux-debian.zip |
Adding debian version 5.10.209-2.debian/5.10.209-2debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch')
-rw-r--r-- | debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch new file mode 100644 index 000000000..22b2f6973 --- /dev/null +++ b/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -0,0 +1,60 @@ +From 971df27cc65fb6805b2253bd66e81bd244887ecc Mon Sep 17 00:00:00 2001 +From: Mike Galbraith <umgwanakikbuti@gmail.com> +Date: Wed, 18 Feb 2015 16:05:28 +0100 +Subject: [PATCH 233/323] sunrpc: Make svc_xprt_do_enqueue() use + get_cpu_light() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 +|in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd +|Preemption disabled at:[<ffffffffa06bf0bb>] svc_xprt_received+0x4b/0xc0 [sunrpc] +|CPU: 6 PID: 3194 Comm: rpc.nfsd Not tainted 3.18.7-rt1 #9 +|Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.404 11/06/2014 +| ffff880409630000 ffff8800d9a33c78 ffffffff815bdeb5 0000000000000002 +| 0000000000000000 ffff8800d9a33c98 ffffffff81073c86 ffff880408dd6008 +| ffff880408dd6000 ffff8800d9a33cb8 ffffffff815c3d84 ffff88040b3ac000 +|Call Trace: +| [<ffffffff815bdeb5>] dump_stack+0x4f/0x9e +| [<ffffffff81073c86>] __might_sleep+0xe6/0x150 +| [<ffffffff815c3d84>] rt_spin_lock+0x24/0x50 +| [<ffffffffa06beec0>] svc_xprt_do_enqueue+0x80/0x230 [sunrpc] +| [<ffffffffa06bf0bb>] svc_xprt_received+0x4b/0xc0 [sunrpc] +| [<ffffffffa06c03ed>] svc_add_new_perm_xprt+0x6d/0x80 [sunrpc] +| [<ffffffffa06b2693>] svc_addsock+0x143/0x200 [sunrpc] +| [<ffffffffa072e69c>] write_ports+0x28c/0x340 [nfsd] +| [<ffffffffa072d2ac>] nfsctl_transaction_write+0x4c/0x80 [nfsd] +| [<ffffffff8117ee83>] vfs_write+0xb3/0x1d0 +| [<ffffffff8117f889>] SyS_write+0x49/0xb0 +| [<ffffffff815c4556>] system_call_fastpath+0x16/0x1b + +Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com> +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + net/sunrpc/svc_xprt.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c +index 06e503466c32..16bd1278a989 100644 +--- a/net/sunrpc/svc_xprt.c ++++ b/net/sunrpc/svc_xprt.c +@@ -422,7 +422,7 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt) + if (test_and_set_bit(XPT_BUSY, &xprt->xpt_flags)) + return; + +- cpu = get_cpu(); ++ cpu = get_cpu_light(); + pool = svc_pool_for_cpu(xprt->xpt_server, cpu); + + atomic_long_inc(&pool->sp_stats.packets); +@@ -446,7 +446,7 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt) + rqstp = NULL; + out_unlock: + rcu_read_unlock(); +- put_cpu(); ++ put_cpu_light(); + trace_svc_xprt_do_enqueue(xprt, rqstp); + } + EXPORT_SYMBOL_GPL(svc_xprt_do_enqueue); +-- +2.43.0 + |