diff options
Diffstat (limited to 'recipes-kernel/linux/linux-toradex-rt-4.14-2.0.x/0003-Revert-sources-prepare-for-rt-patch.patch')
-rw-r--r-- | recipes-kernel/linux/linux-toradex-rt-4.14-2.0.x/0003-Revert-sources-prepare-for-rt-patch.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.14-2.0.x/0003-Revert-sources-prepare-for-rt-patch.patch b/recipes-kernel/linux/linux-toradex-rt-4.14-2.0.x/0003-Revert-sources-prepare-for-rt-patch.patch deleted file mode 100644 index 23d884d..0000000 --- a/recipes-kernel/linux/linux-toradex-rt-4.14-2.0.x/0003-Revert-sources-prepare-for-rt-patch.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 2fb4ad548f92270908b14ae4cc62134c447e8b25 Mon Sep 17 00:00:00 2001 -From: Max Krummenacher <max.krummenacher@toradex.com> -Date: Thu, 19 Dec 2019 12:02:06 +0100 -Subject: [PATCH 3/5] Revert "sources: prepare for rt patch" - -Revert and fixup the preparation for applying the rt patch. - -This reverts commit afa1b55dfb1a9d9c8d4158ca0625d200fa7c3b3b. - -Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> ---- - arch/arm/mach-imx/cpuidle-imx6q.c | 30 ++++++++++++++++++++---------- - fs/nfs/delegation.c | 2 +- - 2 files changed, 21 insertions(+), 11 deletions(-) - -diff --git a/arch/arm/mach-imx/cpuidle-imx6q.c b/arch/arm/mach-imx/cpuidle-imx6q.c -index 39df89d3fbaa..439a69ec4543 100644 ---- a/arch/arm/mach-imx/cpuidle-imx6q.c -+++ b/arch/arm/mach-imx/cpuidle-imx6q.c -@@ -16,24 +16,34 @@ - #include "cpuidle.h" - #include "hardware.h" - --static int num_idle_cpus = 0; --static DEFINE_RAW_SPINLOCK(cpuidle_lock); -+static atomic_t master = ATOMIC_INIT(0); -+static DEFINE_RAW_SPINLOCK(master_lock); - - static int imx6q_enter_wait(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int index) - { -- raw_spin_lock(&cpuidle_lock); -- if (++num_idle_cpus == num_online_cpus()) -+ if (atomic_inc_return(&master) == num_online_cpus()) { -+ /* -+ * With this lock, we prevent other cpu to exit and enter -+ * this function again and become the master. -+ */ -+ if (!raw_spin_trylock(&master_lock)) -+ goto idle; - imx6_set_lpm(WAIT_UNCLOCKED); -- raw_spin_unlock(&cpuidle_lock); -+ if (atomic_read(&master) != num_online_cpus()) -+ imx6_set_lpm(WAIT_CLOCKED); -+ cpu_do_idle(); -+ imx6_set_lpm(WAIT_CLOCKED); -+ raw_spin_unlock(&master_lock); -+ goto done; -+ } - -+idle: - cpu_do_idle(); -+done: -+ atomic_dec(&master); - -- raw_spin_lock(&cpuidle_lock); -- if (num_idle_cpus-- == num_online_cpus()) -- imx6_set_lpm(WAIT_CLOCKED); -- raw_spin_unlock(&cpuidle_lock); -- -+ imx6_set_lpm(WAIT_CLOCKED); - return index; - } - -diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c -index d8d40062ec79..a8a3f2b2299c 100644 ---- a/fs/nfs/delegation.c -+++ b/fs/nfs/delegation.c -@@ -163,7 +163,7 @@ static int nfs_delegation_claim_opens(struct inode *inode, - seq = read_seqbegin(&sp->so_reclaim_seqlock); - err = nfs4_open_delegation_recall(ctx, state, stateid, type); - if (!err) -- err = nfs_delegation_claim_locks(ctx, state, stateid); -+ err = nfs_delegation_claim_locks(state, stateid); - if (!err && read_seqretry(&sp->so_reclaim_seqlock, seq)) - err = -EAGAIN; - mutex_unlock(&sp->so_delegreturn_mutex); --- -2.20.1 - |