aboutsummaryrefslogtreecommitdiffstats
path: root/meta-snowyowl/recipes-kernel/linux/files/0001-net-core-dev.c-fix-build-for-full-RT-kernel.patch
blob: fb5815125209933aa7e39a91b74fc9a8a6224330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From 8aab8dc14ab063feb326acc707b01d5dc9a8f8db Mon Sep 17 00:00:00 2001
From: Awais Belal <awais_belal@mentor.com>
Date: Tue, 15 May 2018 14:10:01 +0500
Subject: [PATCH] net/core/dev.c: fix build for full RT kernel

The RT kernel updates do not allow usage of do_softirq
directly rather it provides a method to run softirqs
on the calling thread using thread_do_softirq.

Signed-off-by: Awais Belal <awais_belal@mentor.com>
---
 net/core/dev.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index 8d14f2af545b..4ffe8b879d20 100755
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5045,8 +5045,13 @@ static void busy_poll_stop(struct napi_struct *napi, void *have_poll_lock)
 	if (rc == BUSY_POLL_BUDGET)
 		__napi_schedule(napi);
 	local_bh_enable();
-	if (local_softirq_pending())
+	if (local_softirq_pending()) {
+#ifdef CONFIG_PREEMPT_RT_FULL
+		thread_do_softirq();
+#else
 		do_softirq();
+#endif
+	}
 }
 
 bool sk_busy_loop(struct sock *sk, int nonblock)
-- 
2.11.1