aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2020-11-19 10:14:03 -0500
committerBruce Ashfield <bruce.ashfield@gmail.com>2020-11-19 10:14:03 -0500
commit2ab2281a7e9059d249e3b8acf2ae82d584fa47c2 (patch)
treed94e29321bcb5e990402e46e5e9331938031153b
parent7c8d004d6dd8917c1f1836c7bb84e2291aa427c9 (diff)
parent978035cc9ec3395fa8f34daa17ebd1e48bb5a13a (diff)
downloadlinux-yocto-v4.19/standard/preempt-rt/intel-x86.tar.gz
linux-yocto-v4.19/standard/preempt-rt/intel-x86.tar.bz2
linux-yocto-v4.19/standard/preempt-rt/intel-x86.zip
Merge branch 'v4.19/standard/preempt-rt/base' into v4.19/standard/preempt-rt/intel-x86v4.19/standard/preempt-rt/intel-x86
-rw-r--r--kernel/sched/core.c7
-rw-r--r--net/core/dev.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 218b93a31000..c62dbf9eebdf 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5702,11 +5702,8 @@ void idle_task_exit(void)
switch_mm(mm, &init_mm, current);
finish_arch_post_lock_switch();
}
- /*
- * Defer the cleanup to an alive cpu. On RT we can neither
- * call mmdrop() nor mmdrop_delayed() from here.
- */
- per_cpu(idle_last_mm, smp_processor_id()) = mm;
+
+ /* finish_cpu(), as ran on the BP, will clean up the active_mm state */
}
/*
diff --git a/net/core/dev.c b/net/core/dev.c
index 6f7e36ef026b..17343961fa24 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3834,7 +3834,11 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev)
if (dev->flags & IFF_UP) {
int cpu = smp_processor_id(); /* ok because BHs are off */
+#ifdef CONFIG_PREEMPT_RT_FULL
+ if (txq->xmit_lock_owner != current) {
+#else
if (txq->xmit_lock_owner != cpu) {
+#endif
if (dev_xmit_recursion())
goto recursion_alert;