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
|