mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-27 04:36:40 +00:00
linux (RPi): update to 4.14.67
drop softirq patches, Linus' patch is upstream since 4.14.63 Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
parent
6f6f5e723e
commit
e3908143d5
@ -41,8 +41,8 @@ case "$LINUX" in
|
|||||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||||
;;
|
;;
|
||||||
raspberrypi)
|
raspberrypi)
|
||||||
PKG_VERSION="1f89ad77bf9b204c18fb6fdd167b4ee92d064f95" # 4.14.62
|
PKG_VERSION="0f937c8dc3201ebffa6c617c616fd7c65db65959" # 4.14.67
|
||||||
PKG_SHA256="153deef35bf1895fb0825395c0f9fb61832dcf0131987fce99449beb17afa173"
|
PKG_SHA256="2d839aebdeebda096a40180378605ad196c98bf8bf997e55fb831ca8b331bf39"
|
||||||
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
|
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
|
||||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||||
;;
|
;;
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
From 907b5fbeaac54c4313132c0918c3090e967b80d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
|
||||||
Date: Wed, 7 Mar 2018 23:46:21 +0000
|
|
||||||
Subject: [PATCH] Revert "Revert "softirq: Let ksoftirqd do its job""
|
|
||||||
|
|
||||||
This reverts commit 0d118e31780349beb5ffa1777fd77058cc464ad6.
|
|
||||||
---
|
|
||||||
kernel/softirq.c | 16 +++++++++++++++-
|
|
||||||
1 file changed, 15 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/softirq.c b/kernel/softirq.c
|
|
||||||
index 3f3fbc2..e89c3b0 100644
|
|
||||||
--- a/kernel/softirq.c
|
|
||||||
+++ b/kernel/softirq.c
|
|
||||||
@@ -77,6 +77,17 @@ static void wakeup_softirqd(void)
|
|
||||||
wake_up_process(tsk);
|
|
||||||
}
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * If ksoftirqd is scheduled, we do not want to process pending softirqs
|
|
||||||
+ * right now. Let ksoftirqd handle this at its own rate, to get fairness.
|
|
||||||
+ */
|
|
||||||
+static bool ksoftirqd_running(void)
|
|
||||||
+{
|
|
||||||
+ struct task_struct *tsk = __this_cpu_read(ksoftirqd);
|
|
||||||
+
|
|
||||||
+ return tsk && (tsk->state == TASK_RUNNING);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* preempt_count and SOFTIRQ_OFFSET usage:
|
|
||||||
* - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving
|
|
||||||
@@ -313,7 +324,7 @@ asmlinkage __visible void do_softirq(void)
|
|
||||||
|
|
||||||
pending = local_softirq_pending();
|
|
||||||
|
|
||||||
- if (pending)
|
|
||||||
+ if (pending && !ksoftirqd_running())
|
|
||||||
do_softirq_own_stack();
|
|
||||||
|
|
||||||
local_irq_restore(flags);
|
|
||||||
@@ -340,6 +351,9 @@ void irq_enter(void)
|
|
||||||
|
|
||||||
static inline void invoke_softirq(void)
|
|
||||||
{
|
|
||||||
+ if (ksoftirqd_running())
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
if (!force_irqthreads) {
|
|
||||||
#ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
|
|
||||||
/*
|
|
||||||
--
|
|
||||||
2.14.1
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
From 5839d34af2063552f83865fd5ebac651688087f9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
|
||||||
Date: Thu, 1 Feb 2018 09:25:19 +0000
|
|
||||||
Subject: [PATCH] Fix issues introduced by ksoftirqd change
|
|
||||||
|
|
||||||
---
|
|
||||||
kernel/softirq.c | 12 ++++++++----
|
|
||||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/softirq.c b/kernel/softirq.c
|
|
||||||
index 4e09821..d6772be 100644
|
|
||||||
--- a/kernel/softirq.c
|
|
||||||
+++ b/kernel/softirq.c
|
|
||||||
@@ -79,12 +79,16 @@ static void wakeup_softirqd(void)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If ksoftirqd is scheduled, we do not want to process pending softirqs
|
|
||||||
- * right now. Let ksoftirqd handle this at its own rate, to get fairness.
|
|
||||||
+ * right now. Let ksoftirqd handle this at its own rate, to get fairness,
|
|
||||||
+ * unless we're doing some of the synchronous softirqs.
|
|
||||||
*/
|
|
||||||
-static bool ksoftirqd_running(void)
|
|
||||||
+#define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ))
|
|
||||||
+static bool ksoftirqd_running(unsigned long pending)
|
|
||||||
{
|
|
||||||
struct task_struct *tsk = __this_cpu_read(ksoftirqd);
|
|
||||||
|
|
||||||
+ if (pending & SOFTIRQ_NOW_MASK)
|
|
||||||
+ return false;
|
|
||||||
return tsk && (tsk->state == TASK_RUNNING);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -324,7 +328,7 @@ asmlinkage __visible void do_softirq(void)
|
|
||||||
|
|
||||||
pending = local_softirq_pending();
|
|
||||||
|
|
||||||
- if (pending && !ksoftirqd_running())
|
|
||||||
+ if (pending && !ksoftirqd_running(pending))
|
|
||||||
do_softirq_own_stack();
|
|
||||||
|
|
||||||
local_irq_restore(flags);
|
|
||||||
@@ -351,7 +355,7 @@ void irq_enter(void)
|
|
||||||
|
|
||||||
static inline void invoke_softirq(void)
|
|
||||||
{
|
|
||||||
- if (ksoftirqd_running())
|
|
||||||
+ if (ksoftirqd_running(local_softirq_pending()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!force_irqthreads) {
|
|
||||||
--
|
|
||||||
2.14.1
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user