[rt] Update to 3.10.6-rt3
svn path=/dists/sid/linux/; revision=20515
This commit is contained in:
parent
db19f6533d
commit
06a0e0f4c1
|
@ -69,6 +69,8 @@ linux (3.10.7-1) UNRELEASED; urgency=low
|
|||
* [armel/orion5x] I2C: mv64xxx: fix race between FSM/interrupt and process
|
||||
context (Closes: #622325)
|
||||
* [arm] Fix the world famous typo with is_gate_vma()
|
||||
* [rt] Update to 3.10.6-rt3
|
||||
- hpsa: fix warning with smp_processor_id() in preemptible
|
||||
|
||||
[ Thorsten Glaser ]
|
||||
* [m68k] debian/patches/bugfix/m68k/atari-irqs.patch: patch from mailing list
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 19 Mar 2013 14:44:30 +0100
|
||||
Subject: [PATCH] kernel/SRCU: provide a static initializer
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
There are macros for static initializer for the three out of four
|
||||
possible notifier types, that are:
|
||||
|
@ -18,10 +18,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
include/linux/srcu.h | 8 ++++----
|
||||
2 files changed, 29 insertions(+), 13 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/notifier.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/notifier.h
|
||||
+++ linux-stable/include/linux/notifier.h
|
||||
--- a/include/linux/notifier.h
|
||||
+++ b/include/linux/notifier.h
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* Alan Cox <Alan.Cox@linux.org>
|
||||
|
@ -101,10 +99,8 @@ Index: linux-stable/include/linux/notifier.h
|
|||
/* CPU notfiers are defined in include/linux/cpu.h. */
|
||||
|
||||
/* netdevice notifiers are defined in include/linux/netdevice.h */
|
||||
Index: linux-stable/include/linux/srcu.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/srcu.h
|
||||
+++ linux-stable/include/linux/srcu.h
|
||||
--- a/include/linux/srcu.h
|
||||
+++ b/include/linux/srcu.h
|
||||
@@ -84,10 +84,10 @@ int init_srcu_struct(struct srcu_struct
|
||||
|
||||
void process_srcu(struct work_struct *work);
|
||||
|
|
|
@ -2,7 +2,7 @@ From 65513f34449eedb6b84c24a3583266534c1627e4 Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 11 Mar 2013 17:09:55 +0100
|
||||
Subject: [PATCH 2/6] x86/highmem: add a "already used pte" check
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
This is a copy from kmap_atomic_prot().
|
||||
|
||||
|
@ -11,10 +11,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
arch/x86/mm/iomap_32.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: linux-stable/arch/x86/mm/iomap_32.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/x86/mm/iomap_32.c
|
||||
+++ linux-stable/arch/x86/mm/iomap_32.c
|
||||
--- a/arch/x86/mm/iomap_32.c
|
||||
+++ b/arch/x86/mm/iomap_32.c
|
||||
@@ -65,6 +65,8 @@ void *kmap_atomic_prot_pfn(unsigned long
|
||||
type = kmap_atomic_idx_push();
|
||||
idx = type + KM_TYPE_NR * smp_processor_id();
|
||||
|
|
|
@ -2,7 +2,7 @@ From e2ca4d092d9c6e6b07b465b4d81da207bbcc7437 Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
||||
Subject: [PATCH 3/6] arm/highmem: flush tlb on unmap
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The tlb should be flushed on unmap and thus make the mapping entry
|
||||
invalid. This is only done in the non-debug case which does not look
|
||||
|
@ -13,10 +13,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
arch/arm/mm/highmem.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/arch/arm/mm/highmem.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mm/highmem.c
|
||||
+++ linux-stable/arch/arm/mm/highmem.c
|
||||
--- a/arch/arm/mm/highmem.c
|
||||
+++ b/arch/arm/mm/highmem.c
|
||||
@@ -95,10 +95,10 @@ void __kunmap_atomic(void *kvaddr)
|
||||
__cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
|
||||
#ifdef CONFIG_DEBUG_HIGHMEM
|
||||
|
|
|
@ -3,7 +3,7 @@ From: Thomas Gleixner <tglx@linutronix.de>
|
|||
Date: Fri, 1 Mar 2013 11:17:42 +0100
|
||||
Subject: [PATCH 5/6] futex: Ensure lock/unlock symetry versus pi_lock and
|
||||
hash bucket lock
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
In exit_pi_state_list() we have the following locking construct:
|
||||
|
||||
|
@ -31,10 +31,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
kernel/futex.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: linux-stable/kernel/futex.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/futex.c
|
||||
+++ linux-stable/kernel/futex.c
|
||||
--- a/kernel/futex.c
|
||||
+++ b/kernel/futex.c
|
||||
@@ -571,7 +571,9 @@ void exit_pi_state_list(struct task_stru
|
||||
* task still owns the PI-state:
|
||||
*/
|
||||
|
|
|
@ -2,7 +2,7 @@ From b72b514282ffad0d665ea94932b968f388304079 Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
||||
Subject: [PATCH] HACK: printk: drop the logbuf_lock more often
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
|
||||
with a "full" buffer after executing "dmesg" on the shell.
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
kernel/printk.c | 27 ++++++++++++++++++++++++++-
|
||||
1 file changed, 26 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/kernel/printk.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/printk.c
|
||||
+++ linux-stable/kernel/printk.c
|
||||
--- a/kernel/printk.c
|
||||
+++ b/kernel/printk.c
|
||||
@@ -1034,6 +1034,7 @@ static int syslog_print_all(char __user
|
||||
{
|
||||
char *text;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Wed, 13 Feb 2013 09:26:05 -0500
|
||||
Subject: [PATCH] acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
We hit the following bug with 3.6-rt:
|
||||
|
||||
|
@ -71,10 +71,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
include/acpi/platform/aclinux.h | 14 ++++++++++++++
|
||||
5 files changed, 21 insertions(+), 7 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/acpi/acpica/acglobal.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/acpi/acpica/acglobal.h
|
||||
+++ linux-stable/drivers/acpi/acpica/acglobal.h
|
||||
--- a/drivers/acpi/acpica/acglobal.h
|
||||
+++ b/drivers/acpi/acpica/acglobal.h
|
||||
@@ -223,7 +223,7 @@ ACPI_EXTERN u8 acpi_gbl_global_lock_pend
|
||||
* interrupt level
|
||||
*/
|
||||
|
@ -84,10 +82,8 @@ Index: linux-stable/drivers/acpi/acpica/acglobal.h
|
|||
ACPI_EXTERN acpi_spinlock acpi_gbl_reference_count_lock;
|
||||
|
||||
/* Mutex for _OSI support */
|
||||
Index: linux-stable/drivers/acpi/acpica/hwregs.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/acpi/acpica/hwregs.c
|
||||
+++ linux-stable/drivers/acpi/acpica/hwregs.c
|
||||
--- a/drivers/acpi/acpica/hwregs.c
|
||||
+++ b/drivers/acpi/acpica/hwregs.c
|
||||
@@ -269,14 +269,14 @@ acpi_status acpi_hw_clear_acpi_status(vo
|
||||
ACPI_BITMASK_ALL_FIXED_STATUS,
|
||||
ACPI_FORMAT_UINT64(acpi_gbl_xpm1a_status.address)));
|
||||
|
@ -105,10 +101,8 @@ Index: linux-stable/drivers/acpi/acpica/hwregs.c
|
|||
|
||||
if (ACPI_FAILURE(status))
|
||||
goto exit;
|
||||
Index: linux-stable/drivers/acpi/acpica/hwxface.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/acpi/acpica/hwxface.c
|
||||
+++ linux-stable/drivers/acpi/acpica/hwxface.c
|
||||
--- a/drivers/acpi/acpica/hwxface.c
|
||||
+++ b/drivers/acpi/acpica/hwxface.c
|
||||
@@ -365,7 +365,7 @@ acpi_status acpi_write_bit_register(u32
|
||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||
}
|
||||
|
@ -127,10 +121,8 @@ Index: linux-stable/drivers/acpi/acpica/hwxface.c
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
Index: linux-stable/drivers/acpi/acpica/utmutex.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/acpi/acpica/utmutex.c
|
||||
+++ linux-stable/drivers/acpi/acpica/utmutex.c
|
||||
--- a/drivers/acpi/acpica/utmutex.c
|
||||
+++ b/drivers/acpi/acpica/utmutex.c
|
||||
@@ -88,7 +88,7 @@ acpi_status acpi_ut_mutex_initialize(voi
|
||||
return_ACPI_STATUS (status);
|
||||
}
|
||||
|
@ -149,10 +141,8 @@ Index: linux-stable/drivers/acpi/acpica/utmutex.c
|
|||
acpi_os_delete_lock(acpi_gbl_reference_count_lock);
|
||||
|
||||
/* Delete the reader/writer lock */
|
||||
Index: linux-stable/include/acpi/platform/aclinux.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/acpi/platform/aclinux.h
|
||||
+++ linux-stable/include/acpi/platform/aclinux.h
|
||||
--- a/include/acpi/platform/aclinux.h
|
||||
+++ b/include/acpi/platform/aclinux.h
|
||||
@@ -72,6 +72,7 @@
|
||||
|
||||
#define acpi_cache_t struct kmem_cache
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: mm: Fixup all fault handlers to check current->pagefault_disable
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 17 Mar 2011 11:32:28 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Necessary for decoupling pagefault disable from preempt count.
|
||||
|
||||
|
@ -31,10 +31,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
arch/xtensa/mm/fault.c | 2 +-
|
||||
22 files changed, 26 insertions(+), 23 deletions(-)
|
||||
|
||||
Index: linux-stable/arch/alpha/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/alpha/mm/fault.c
|
||||
+++ linux-stable/arch/alpha/mm/fault.c
|
||||
--- a/arch/alpha/mm/fault.c
|
||||
+++ b/arch/alpha/mm/fault.c
|
||||
@@ -108,7 +108,7 @@ do_page_fault(unsigned long address, uns
|
||||
|
||||
/* If we're in an interrupt context, or have no user context,
|
||||
|
@ -44,10 +42,8 @@ Index: linux-stable/arch/alpha/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
#ifdef CONFIG_ALPHA_LARGE_VMALLOC
|
||||
Index: linux-stable/arch/arm/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mm/fault.c
|
||||
+++ linux-stable/arch/arm/mm/fault.c
|
||||
--- a/arch/arm/mm/fault.c
|
||||
+++ b/arch/arm/mm/fault.c
|
||||
@@ -279,7 +279,7 @@ do_page_fault(unsigned long addr, unsign
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -57,10 +53,8 @@ Index: linux-stable/arch/arm/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
/*
|
||||
Index: linux-stable/arch/avr32/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/avr32/mm/fault.c
|
||||
+++ linux-stable/arch/avr32/mm/fault.c
|
||||
--- a/arch/avr32/mm/fault.c
|
||||
+++ b/arch/avr32/mm/fault.c
|
||||
@@ -81,7 +81,8 @@ asmlinkage void do_page_fault(unsigned l
|
||||
* If we're in an interrupt or have no user context, we must
|
||||
* not take the fault...
|
||||
|
@ -71,10 +65,8 @@ Index: linux-stable/arch/avr32/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
local_irq_enable();
|
||||
Index: linux-stable/arch/cris/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/cris/mm/fault.c
|
||||
+++ linux-stable/arch/cris/mm/fault.c
|
||||
--- a/arch/cris/mm/fault.c
|
||||
+++ b/arch/cris/mm/fault.c
|
||||
@@ -114,7 +114,7 @@ do_page_fault(unsigned long address, str
|
||||
* user context, we must not take the fault.
|
||||
*/
|
||||
|
@ -84,10 +76,8 @@ Index: linux-stable/arch/cris/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
retry:
|
||||
Index: linux-stable/arch/frv/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/frv/mm/fault.c
|
||||
+++ linux-stable/arch/frv/mm/fault.c
|
||||
--- a/arch/frv/mm/fault.c
|
||||
+++ b/arch/frv/mm/fault.c
|
||||
@@ -78,7 +78,7 @@ asmlinkage void do_page_fault(int datamm
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -97,10 +87,8 @@ Index: linux-stable/arch/frv/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
down_read(&mm->mmap_sem);
|
||||
Index: linux-stable/arch/ia64/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/ia64/mm/fault.c
|
||||
+++ linux-stable/arch/ia64/mm/fault.c
|
||||
--- a/arch/ia64/mm/fault.c
|
||||
+++ b/arch/ia64/mm/fault.c
|
||||
@@ -98,7 +98,7 @@ ia64_do_page_fault (unsigned long addres
|
||||
/*
|
||||
* If we're in an interrupt or have no user context, we must not take the fault..
|
||||
|
@ -110,10 +98,8 @@ Index: linux-stable/arch/ia64/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
#ifdef CONFIG_VIRTUAL_MEM_MAP
|
||||
Index: linux-stable/arch/m32r/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/m32r/mm/fault.c
|
||||
+++ linux-stable/arch/m32r/mm/fault.c
|
||||
--- a/arch/m32r/mm/fault.c
|
||||
+++ b/arch/m32r/mm/fault.c
|
||||
@@ -114,7 +114,7 @@ asmlinkage void do_page_fault(struct pt_
|
||||
* If we're in an interrupt or have no user context or are running in an
|
||||
* atomic region then we must not take the fault..
|
||||
|
@ -123,10 +109,8 @@ Index: linux-stable/arch/m32r/mm/fault.c
|
|||
goto bad_area_nosemaphore;
|
||||
|
||||
/* When running in the kernel we expect faults to occur only to
|
||||
Index: linux-stable/arch/m68k/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/m68k/mm/fault.c
|
||||
+++ linux-stable/arch/m68k/mm/fault.c
|
||||
--- a/arch/m68k/mm/fault.c
|
||||
+++ b/arch/m68k/mm/fault.c
|
||||
@@ -85,7 +85,7 @@ int do_page_fault(struct pt_regs *regs,
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -136,10 +120,8 @@ Index: linux-stable/arch/m68k/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
retry:
|
||||
Index: linux-stable/arch/microblaze/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/microblaze/mm/fault.c
|
||||
+++ linux-stable/arch/microblaze/mm/fault.c
|
||||
--- a/arch/microblaze/mm/fault.c
|
||||
+++ b/arch/microblaze/mm/fault.c
|
||||
@@ -108,7 +108,7 @@ void do_page_fault(struct pt_regs *regs,
|
||||
if ((error_code & 0x13) == 0x13 || (error_code & 0x11) == 0x11)
|
||||
is_write = 0;
|
||||
|
@ -149,10 +131,8 @@ Index: linux-stable/arch/microblaze/mm/fault.c
|
|||
if (kernel_mode(regs))
|
||||
goto bad_area_nosemaphore;
|
||||
|
||||
Index: linux-stable/arch/mips/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/mips/mm/fault.c
|
||||
+++ linux-stable/arch/mips/mm/fault.c
|
||||
--- a/arch/mips/mm/fault.c
|
||||
+++ b/arch/mips/mm/fault.c
|
||||
@@ -89,7 +89,7 @@ asmlinkage void __kprobes do_page_fault(
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -162,10 +142,8 @@ Index: linux-stable/arch/mips/mm/fault.c
|
|||
goto bad_area_nosemaphore;
|
||||
|
||||
retry:
|
||||
Index: linux-stable/arch/mn10300/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/mn10300/mm/fault.c
|
||||
+++ linux-stable/arch/mn10300/mm/fault.c
|
||||
--- a/arch/mn10300/mm/fault.c
|
||||
+++ b/arch/mn10300/mm/fault.c
|
||||
@@ -168,7 +168,7 @@ asmlinkage void do_page_fault(struct pt_
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -175,10 +153,8 @@ Index: linux-stable/arch/mn10300/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
retry:
|
||||
Index: linux-stable/arch/parisc/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/parisc/mm/fault.c
|
||||
+++ linux-stable/arch/parisc/mm/fault.c
|
||||
--- a/arch/parisc/mm/fault.c
|
||||
+++ b/arch/parisc/mm/fault.c
|
||||
@@ -177,7 +177,7 @@ void do_page_fault(struct pt_regs *regs,
|
||||
int fault;
|
||||
unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
|
||||
|
@ -188,10 +164,8 @@ Index: linux-stable/arch/parisc/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
retry:
|
||||
Index: linux-stable/arch/powerpc/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/powerpc/mm/fault.c
|
||||
+++ linux-stable/arch/powerpc/mm/fault.c
|
||||
--- a/arch/powerpc/mm/fault.c
|
||||
+++ b/arch/powerpc/mm/fault.c
|
||||
@@ -264,7 +264,7 @@ int __kprobes do_page_fault(struct pt_re
|
||||
if (!arch_irq_disabled_regs(regs))
|
||||
local_irq_enable();
|
||||
|
@ -201,10 +175,8 @@ Index: linux-stable/arch/powerpc/mm/fault.c
|
|||
if (!user_mode(regs)) {
|
||||
rc = SIGSEGV;
|
||||
goto bail;
|
||||
Index: linux-stable/arch/s390/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/s390/mm/fault.c
|
||||
+++ linux-stable/arch/s390/mm/fault.c
|
||||
--- a/arch/s390/mm/fault.c
|
||||
+++ b/arch/s390/mm/fault.c
|
||||
@@ -296,7 +296,8 @@ static inline int do_exception(struct pt
|
||||
* user context.
|
||||
*/
|
||||
|
@ -225,10 +197,8 @@ Index: linux-stable/arch/s390/mm/fault.c
|
|||
goto no_context;
|
||||
|
||||
down_read(&mm->mmap_sem);
|
||||
Index: linux-stable/arch/score/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/score/mm/fault.c
|
||||
+++ linux-stable/arch/score/mm/fault.c
|
||||
--- a/arch/score/mm/fault.c
|
||||
+++ b/arch/score/mm/fault.c
|
||||
@@ -72,7 +72,7 @@ asmlinkage void do_page_fault(struct pt_
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -238,10 +208,8 @@ Index: linux-stable/arch/score/mm/fault.c
|
|||
goto bad_area_nosemaphore;
|
||||
|
||||
down_read(&mm->mmap_sem);
|
||||
Index: linux-stable/arch/sh/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/sh/mm/fault.c
|
||||
+++ linux-stable/arch/sh/mm/fault.c
|
||||
--- a/arch/sh/mm/fault.c
|
||||
+++ b/arch/sh/mm/fault.c
|
||||
@@ -440,7 +440,7 @@ asmlinkage void __kprobes do_page_fault(
|
||||
* If we're in an interrupt, have no user context or are running
|
||||
* in an atomic region then we must not take the fault:
|
||||
|
@ -251,10 +219,8 @@ Index: linux-stable/arch/sh/mm/fault.c
|
|||
bad_area_nosemaphore(regs, error_code, address);
|
||||
return;
|
||||
}
|
||||
Index: linux-stable/arch/sparc/mm/fault_32.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/sparc/mm/fault_32.c
|
||||
+++ linux-stable/arch/sparc/mm/fault_32.c
|
||||
--- a/arch/sparc/mm/fault_32.c
|
||||
+++ b/arch/sparc/mm/fault_32.c
|
||||
@@ -200,7 +200,7 @@ asmlinkage void do_sparc_fault(struct pt
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -264,10 +230,8 @@ Index: linux-stable/arch/sparc/mm/fault_32.c
|
|||
goto no_context;
|
||||
|
||||
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
|
||||
Index: linux-stable/arch/sparc/mm/fault_64.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/sparc/mm/fault_64.c
|
||||
+++ linux-stable/arch/sparc/mm/fault_64.c
|
||||
--- a/arch/sparc/mm/fault_64.c
|
||||
+++ b/arch/sparc/mm/fault_64.c
|
||||
@@ -321,7 +321,7 @@ asmlinkage void __kprobes do_sparc64_fau
|
||||
* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
@ -277,10 +241,8 @@ Index: linux-stable/arch/sparc/mm/fault_64.c
|
|||
goto intr_or_no_mm;
|
||||
|
||||
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
|
||||
Index: linux-stable/arch/tile/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/tile/mm/fault.c
|
||||
+++ linux-stable/arch/tile/mm/fault.c
|
||||
--- a/arch/tile/mm/fault.c
|
||||
+++ b/arch/tile/mm/fault.c
|
||||
@@ -360,7 +360,7 @@ static int handle_page_fault(struct pt_r
|
||||
* If we're in an interrupt, have no user context or are running in an
|
||||
* atomic region then we must not take the fault.
|
||||
|
@ -290,10 +252,8 @@ Index: linux-stable/arch/tile/mm/fault.c
|
|||
vma = NULL; /* happy compiler */
|
||||
goto bad_area_nosemaphore;
|
||||
}
|
||||
Index: linux-stable/arch/um/kernel/trap.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/um/kernel/trap.c
|
||||
+++ linux-stable/arch/um/kernel/trap.c
|
||||
--- a/arch/um/kernel/trap.c
|
||||
+++ b/arch/um/kernel/trap.c
|
||||
@@ -39,7 +39,7 @@ int handle_page_fault(unsigned long addr
|
||||
* If the fault was during atomic operation, don't take the fault, just
|
||||
* fail.
|
||||
|
@ -303,10 +263,8 @@ Index: linux-stable/arch/um/kernel/trap.c
|
|||
goto out_nosemaphore;
|
||||
|
||||
retry:
|
||||
Index: linux-stable/arch/x86/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/x86/mm/fault.c
|
||||
+++ linux-stable/arch/x86/mm/fault.c
|
||||
--- a/arch/x86/mm/fault.c
|
||||
+++ b/arch/x86/mm/fault.c
|
||||
@@ -1104,7 +1104,7 @@ __do_page_fault(struct pt_regs *regs, un
|
||||
* If we're in an interrupt, have no user context or are running
|
||||
* in an atomic region then we must not take the fault:
|
||||
|
@ -316,10 +274,8 @@ Index: linux-stable/arch/x86/mm/fault.c
|
|||
bad_area_nosemaphore(regs, error_code, address);
|
||||
return;
|
||||
}
|
||||
Index: linux-stable/arch/xtensa/mm/fault.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/xtensa/mm/fault.c
|
||||
+++ linux-stable/arch/xtensa/mm/fault.c
|
||||
--- a/arch/xtensa/mm/fault.c
|
||||
+++ b/arch/xtensa/mm/fault.c
|
||||
@@ -57,7 +57,7 @@ void do_page_fault(struct pt_regs *regs)
|
||||
/* If we're in an interrupt or have no user
|
||||
* context, we must not take the fault..
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
Subject: arm: Allow forced irq threading
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sat, 16 Jul 2011 13:15:20 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
All timer interrupts and the perf interrupt are marked NO_THREAD, so
|
||||
its safe to allow forced interrupt threading.
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
arch/arm/Kconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -19,6 +19,7 @@ config ARM
|
||||
select GENERIC_STRNCPY_FROM_USER
|
||||
select GENERIC_STRNLEN_USER
|
||||
select HARDIRQS_SW_RESEND
|
||||
+ select IRQ_FORCED_THREADING
|
||||
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
|
@ -1,7 +1,7 @@
|
|||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||
Date: Sat, 6 Mar 2010 17:47:10 +0100
|
||||
Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Setup and remove the interrupt handler in clock event mode selection.
|
||||
This avoids calling the (shared) interrupt handler when the device is
|
||||
|
@ -15,10 +15,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
arch/arm/mach-at91/at91sam926x_time.c | 5 ++++-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/arch/arm/mach-at91/at91rm9200_time.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-at91/at91rm9200_time.c
|
||||
+++ linux-stable/arch/arm/mach-at91/at91rm9200_time.c
|
||||
--- a/arch/arm/mach-at91/at91rm9200_time.c
|
||||
+++ b/arch/arm/mach-at91/at91rm9200_time.c
|
||||
@@ -134,6 +134,7 @@ clkevt32k_mode(enum clock_event_mode mod
|
||||
break;
|
||||
case CLOCK_EVT_MODE_SHUTDOWN:
|
||||
|
@ -27,10 +25,8 @@ Index: linux-stable/arch/arm/mach-at91/at91rm9200_time.c
|
|||
case CLOCK_EVT_MODE_RESUME:
|
||||
irqmask = 0;
|
||||
break;
|
||||
Index: linux-stable/arch/arm/mach-at91/at91sam926x_time.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-at91/at91sam926x_time.c
|
||||
+++ linux-stable/arch/arm/mach-at91/at91sam926x_time.c
|
||||
--- a/arch/arm/mach-at91/at91sam926x_time.c
|
||||
+++ b/arch/arm/mach-at91/at91sam926x_time.c
|
||||
@@ -77,7 +77,7 @@ static struct clocksource pit_clk = {
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sat, 1 May 2010 18:29:35 +0200
|
||||
Subject: ARM: at91: tclib: Default to tclib timer for RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
RT is not too happy about the shared timer interrupt in AT91
|
||||
devices. Default to tclib timer for RT.
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/misc/Kconfig | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/drivers/misc/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/misc/Kconfig
|
||||
+++ linux-stable/drivers/misc/Kconfig
|
||||
--- a/drivers/misc/Kconfig
|
||||
+++ b/drivers/misc/Kconfig
|
||||
@@ -63,6 +63,7 @@ config ATMEL_PWM
|
||||
config ATMEL_TCLIB
|
||||
bool "Atmel AT32/AT91 Timer/Counter Library"
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
Subject: preempt-rt: Convert arm boot_lock to raw
|
||||
From: Frank Rowand <frank.rowand@am.sony.com>
|
||||
Date: Mon, 19 Sep 2011 14:51:14 -0700
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
|
||||
Subject: [PATCH] preempt-rt: Convert arm boot_lock to raw
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The arm boot_lock is used by the secondary processor startup code. The locking
|
||||
task is the idle thread, which has idle->sched_class == &idle_sched_class.
|
||||
|
@ -25,15 +24,13 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
arch/arm/mach-msm/platsmp.c | 10 +++++-----
|
||||
arch/arm/mach-omap2/omap-smp.c | 10 +++++-----
|
||||
arch/arm/mach-prima2/platsmp.c | 10 +++++-----
|
||||
arch/arm/mach-spear/platsmp.c | 8 ++++----
|
||||
arch/arm/mach-spear/platsmp.c | 10 +++++-----
|
||||
arch/arm/mach-ux500/platsmp.c | 10 +++++-----
|
||||
arch/arm/plat-versatile/platsmp.c | 10 +++++-----
|
||||
7 files changed, 35 insertions(+), 35 deletions(-)
|
||||
7 files changed, 36 insertions(+), 36 deletions(-)
|
||||
|
||||
Index: linux-stable/arch/arm/mach-exynos/platsmp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-exynos/platsmp.c
|
||||
+++ linux-stable/arch/arm/mach-exynos/platsmp.c
|
||||
--- a/arch/arm/mach-exynos/platsmp.c
|
||||
+++ b/arch/arm/mach-exynos/platsmp.c
|
||||
@@ -71,7 +71,7 @@ static void __iomem *scu_base_addr(void)
|
||||
return (void __iomem *)(S5P_VA_SCU);
|
||||
}
|
||||
|
@ -81,10 +78,8 @@ Index: linux-stable/arch/arm/mach-exynos/platsmp.c
|
|||
|
||||
return pen_release != -1 ? -ENOSYS : 0;
|
||||
}
|
||||
Index: linux-stable/arch/arm/mach-msm/platsmp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-msm/platsmp.c
|
||||
+++ linux-stable/arch/arm/mach-msm/platsmp.c
|
||||
--- a/arch/arm/mach-msm/platsmp.c
|
||||
+++ b/arch/arm/mach-msm/platsmp.c
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
extern void msm_secondary_startup(void);
|
||||
|
@ -123,10 +118,8 @@ Index: linux-stable/arch/arm/mach-msm/platsmp.c
|
|||
|
||||
return pen_release != -1 ? -ENOSYS : 0;
|
||||
}
|
||||
Index: linux-stable/arch/arm/mach-omap2/omap-smp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-omap2/omap-smp.c
|
||||
+++ linux-stable/arch/arm/mach-omap2/omap-smp.c
|
||||
--- a/arch/arm/mach-omap2/omap-smp.c
|
||||
+++ b/arch/arm/mach-omap2/omap-smp.c
|
||||
@@ -44,7 +44,7 @@ u16 pm44xx_errata;
|
||||
/* SCU base address */
|
||||
static void __iomem *scu_base;
|
||||
|
@ -165,10 +158,8 @@ Index: linux-stable/arch/arm/mach-omap2/omap-smp.c
|
|||
|
||||
return 0;
|
||||
}
|
||||
Index: linux-stable/arch/arm/mach-prima2/platsmp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-prima2/platsmp.c
|
||||
+++ linux-stable/arch/arm/mach-prima2/platsmp.c
|
||||
--- a/arch/arm/mach-prima2/platsmp.c
|
||||
+++ b/arch/arm/mach-prima2/platsmp.c
|
||||
@@ -23,7 +23,7 @@
|
||||
static void __iomem *scu_base;
|
||||
static void __iomem *rsc_base;
|
||||
|
@ -207,10 +198,17 @@ Index: linux-stable/arch/arm/mach-prima2/platsmp.c
|
|||
|
||||
return pen_release != -1 ? -ENOSYS : 0;
|
||||
}
|
||||
Index: linux-stable/arch/arm/mach-spear/platsmp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-spear/platsmp.c
|
||||
+++ linux-stable/arch/arm/mach-spear/platsmp.c
|
||||
--- a/arch/arm/mach-spear/platsmp.c
|
||||
+++ b/arch/arm/mach-spear/platsmp.c
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <mach/spear.h>
|
||||
#include "generic.h"
|
||||
|
||||
-static DEFINE_SPINLOCK(boot_lock);
|
||||
+static DEFINE_RAW_SPINLOCK(boot_lock);
|
||||
|
||||
static void __iomem *scu_base = IOMEM(VA_SCU_BASE);
|
||||
|
||||
@@ -36,8 +36,8 @@ static void __cpuinit spear13xx_secondar
|
||||
/*
|
||||
* Synchronise with the boot thread.
|
||||
|
@ -240,10 +238,8 @@ Index: linux-stable/arch/arm/mach-spear/platsmp.c
|
|||
|
||||
return pen_release != -1 ? -ENOSYS : 0;
|
||||
}
|
||||
Index: linux-stable/arch/arm/mach-ux500/platsmp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mach-ux500/platsmp.c
|
||||
+++ linux-stable/arch/arm/mach-ux500/platsmp.c
|
||||
--- a/arch/arm/mach-ux500/platsmp.c
|
||||
+++ b/arch/arm/mach-ux500/platsmp.c
|
||||
@@ -52,7 +52,7 @@ static void __iomem *scu_base_addr(void)
|
||||
return NULL;
|
||||
}
|
||||
|
@ -282,10 +278,8 @@ Index: linux-stable/arch/arm/mach-ux500/platsmp.c
|
|||
|
||||
return pen_release != -1 ? -ENOSYS : 0;
|
||||
}
|
||||
Index: linux-stable/arch/arm/plat-versatile/platsmp.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/plat-versatile/platsmp.c
|
||||
+++ linux-stable/arch/arm/plat-versatile/platsmp.c
|
||||
--- a/arch/arm/plat-versatile/platsmp.c
|
||||
+++ b/arch/arm/plat-versatile/platsmp.c
|
||||
@@ -31,7 +31,7 @@ static void __cpuinit write_pen_release(
|
||||
outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
|
||||
}
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: arm-disable-highmem-on-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Mon, 18 Jul 2011 17:09:28 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
arch/arm/Kconfig | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/arch/arm/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/Kconfig
|
||||
+++ linux-stable/arch/arm/Kconfig
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1704,7 +1704,7 @@ config HAVE_ARCH_PFN_VALID
|
||||
|
||||
config HIGHMEM
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: arm-enable-highmem-for-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 13 Feb 2013 11:03:11 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -11,10 +11,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
include/linux/highmem.h | 1
|
||||
4 files changed, 50 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: linux-stable/arch/arm/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/Kconfig
|
||||
+++ linux-stable/arch/arm/Kconfig
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1704,7 +1704,7 @@ config HAVE_ARCH_PFN_VALID
|
||||
|
||||
config HIGHMEM
|
||||
|
@ -24,10 +22,8 @@ Index: linux-stable/arch/arm/Kconfig
|
|||
help
|
||||
The address space of ARM processors is only 4 Gigabytes large
|
||||
and it has to accommodate user address space, kernel address
|
||||
Index: linux-stable/arch/arm/include/asm/switch_to.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/include/asm/switch_to.h
|
||||
+++ linux-stable/arch/arm/include/asm/switch_to.h
|
||||
--- a/arch/arm/include/asm/switch_to.h
|
||||
+++ b/arch/arm/include/asm/switch_to.h
|
||||
@@ -3,6 +3,14 @@
|
||||
|
||||
#include <linux/thread_info.h>
|
||||
|
@ -51,10 +47,8 @@ Index: linux-stable/arch/arm/include/asm/switch_to.h
|
|||
last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
|
||||
} while (0)
|
||||
|
||||
Index: linux-stable/arch/arm/mm/highmem.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/mm/highmem.c
|
||||
+++ linux-stable/arch/arm/mm/highmem.c
|
||||
--- a/arch/arm/mm/highmem.c
|
||||
+++ b/arch/arm/mm/highmem.c
|
||||
@@ -38,6 +38,7 @@ EXPORT_SYMBOL(kunmap);
|
||||
|
||||
void *kmap_atomic(struct page *page)
|
||||
|
@ -135,10 +129,8 @@ Index: linux-stable/arch/arm/mm/highmem.c
|
|||
+ }
|
||||
+}
|
||||
+#endif
|
||||
Index: linux-stable/include/linux/highmem.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/highmem.h
|
||||
+++ linux-stable/include/linux/highmem.h
|
||||
--- a/include/linux/highmem.h
|
||||
+++ b/include/linux/highmem.h
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
Subject: arm: Mark pmu interupt IRQF_NO_THREAD
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 16 Mar 2011 14:45:31 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
PMU interrupts must not be threaded.
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
arch/arm/kernel/perf_event_cpu.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm/kernel/perf_event_cpu.c
|
||||
+++ b/arch/arm/kernel/perf_event_cpu.c
|
||||
@@ -118,7 +118,8 @@ static int cpu_pmu_request_irq(struct ar
|
||||
continue;
|
||||
}
|
||||
|
||||
- err = request_irq(irq, handler, IRQF_NOBALANCING, "arm-pmu",
|
||||
+ err = request_irq(irq, handler,
|
||||
+ IRQF_NOBALANCING | IRQF_NO_THREAD, "arm-pmu",
|
||||
cpu_pmu);
|
||||
if (err) {
|
||||
pr_err("unable to request IRQ%d for ARM PMU counters\n",
|
|
@ -1,7 +1,7 @@
|
|||
Subject: arm-preempt-lazy-support.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -12,11 +12,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
arch/arm/kernel/signal.c | 3 ++-
|
||||
5 files changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: linux-stable/arch/arm/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/Kconfig
|
||||
+++ linux-stable/arch/arm/Kconfig
|
||||
@@ -48,6 +48,7 @@ config ARM
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -47,6 +47,7 @@ config ARM
|
||||
select HAVE_MEMBLOCK
|
||||
select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
|
||||
select HAVE_PERF_EVENTS
|
||||
|
@ -24,10 +22,8 @@ Index: linux-stable/arch/arm/Kconfig
|
|||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_SYSCALL_TRACEPOINTS
|
||||
select HAVE_UID16
|
||||
Index: linux-stable/arch/arm/include/asm/thread_info.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/include/asm/thread_info.h
|
||||
+++ linux-stable/arch/arm/include/asm/thread_info.h
|
||||
--- a/arch/arm/include/asm/thread_info.h
|
||||
+++ b/arch/arm/include/asm/thread_info.h
|
||||
@@ -50,6 +50,7 @@ struct cpu_context_save {
|
||||
struct thread_info {
|
||||
unsigned long flags; /* low level flags */
|
||||
|
@ -44,7 +40,7 @@ Index: linux-stable/arch/arm/include/asm/thread_info.h
|
|||
#define TIF_SYSCALL_TRACE 8
|
||||
#define TIF_SYSCALL_AUDIT 9
|
||||
#define TIF_SYSCALL_TRACEPOINT 10
|
||||
@@ -161,6 +163,7 @@ extern int vfp_restore_user_hwstate(stru
|
||||
@@ -160,6 +162,7 @@ extern int vfp_restore_user_hwstate(stru
|
||||
#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
|
||||
#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
|
||||
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
|
||||
|
@ -52,10 +48,8 @@ Index: linux-stable/arch/arm/include/asm/thread_info.h
|
|||
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
|
||||
#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
|
||||
#define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
|
||||
Index: linux-stable/arch/arm/kernel/asm-offsets.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/kernel/asm-offsets.c
|
||||
+++ linux-stable/arch/arm/kernel/asm-offsets.c
|
||||
--- a/arch/arm/kernel/asm-offsets.c
|
||||
+++ b/arch/arm/kernel/asm-offsets.c
|
||||
@@ -53,6 +53,7 @@ int main(void)
|
||||
BLANK();
|
||||
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
|
||||
|
@ -64,10 +58,8 @@ Index: linux-stable/arch/arm/kernel/asm-offsets.c
|
|||
DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
|
||||
DEFINE(TI_TASK, offsetof(struct thread_info, task));
|
||||
DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain));
|
||||
Index: linux-stable/arch/arm/kernel/entry-armv.S
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/kernel/entry-armv.S
|
||||
+++ linux-stable/arch/arm/kernel/entry-armv.S
|
||||
--- a/arch/arm/kernel/entry-armv.S
|
||||
+++ b/arch/arm/kernel/entry-armv.S
|
||||
@@ -204,11 +204,18 @@ __irq_svc:
|
||||
#ifdef CONFIG_PREEMPT
|
||||
get_thread_info tsk
|
||||
|
@ -98,11 +90,9 @@ Index: linux-stable/arch/arm/kernel/entry-armv.S
|
|||
moveq pc, r8 @ go again
|
||||
b 1b
|
||||
#endif
|
||||
Index: linux-stable/arch/arm/kernel/signal.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/arm/kernel/signal.c
|
||||
+++ linux-stable/arch/arm/kernel/signal.c
|
||||
@@ -576,7 +576,8 @@ asmlinkage int
|
||||
--- a/arch/arm/kernel/signal.c
|
||||
+++ b/arch/arm/kernel/signal.c
|
||||
@@ -584,7 +584,8 @@ asmlinkage int
|
||||
do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
|
||||
{
|
||||
do {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <srostedt@redhat.com>
|
||||
Date: Fri, 3 Jul 2009 08:44:29 -0500
|
||||
Subject: ata: Do not disable interrupts in ide code for preempt-rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Use the local_irq_*_nort variants.
|
||||
|
||||
|
@ -13,10 +13,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/ata/libata-sff.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/ata/libata-sff.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ata/libata-sff.c
|
||||
+++ linux-stable/drivers/ata/libata-sff.c
|
||||
--- a/drivers/ata/libata-sff.c
|
||||
+++ b/drivers/ata/libata-sff.c
|
||||
@@ -678,9 +678,9 @@ unsigned int ata_sff_data_xfer_noirq(str
|
||||
unsigned long flags;
|
||||
unsigned int consumed;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: block: Shorten interrupt disabled regions
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 22 Jun 2011 19:47:02 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
|
||||
disabled region in the scheduler allows us to replace
|
||||
|
@ -47,10 +47,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
block/blk-core.c | 12 ++----------
|
||||
1 file changed, 2 insertions(+), 10 deletions(-)
|
||||
|
||||
Index: linux-stable/block/blk-core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/block/blk-core.c
|
||||
+++ linux-stable/block/blk-core.c
|
||||
--- a/block/blk-core.c
|
||||
+++ b/block/blk-core.c
|
||||
@@ -2907,7 +2907,7 @@ static void queue_unplugged(struct reque
|
||||
blk_run_queue_async(q);
|
||||
else
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: block: Use cpu_chill() for retry loops
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 20 Dec 2012 18:28:26 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Retry loops on RT might loop forever when the modifying side was
|
||||
preempted. Steven also observed a live lock when there was a
|
||||
|
@ -16,10 +16,8 @@ Cc: stable-rt@vger.kernel.org
|
|||
block/blk-ioc.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/block/blk-ioc.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/block/blk-ioc.c
|
||||
+++ linux-stable/block/blk-ioc.c
|
||||
--- a/block/blk-ioc.c
|
||||
+++ b/block/blk-ioc.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/bootmem.h> /* for max_pfn/max_low_pfn */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:58 -0500
|
||||
Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
|
@ -10,10 +10,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
include/asm-generic/bug.h | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
Index: linux-stable/include/asm-generic/bug.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/asm-generic/bug.h
|
||||
+++ linux-stable/include/asm-generic/bug.h
|
||||
--- a/include/asm-generic/bug.h
|
||||
+++ b/include/asm-generic/bug.h
|
||||
@@ -202,6 +202,20 @@ extern void warn_slowpath_null(const cha
|
||||
# define WARN_ON_SMP(x) ({0;})
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
||||
Subject: clocksource: TCLIB: Allow higher clock rates for clock events
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
As default the TCLIB uses the 32KiHz base clock rate for clock events.
|
||||
Add a compile time selection to allow higher clock resulution.
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/misc/Kconfig | 12 ++++++++++--
|
||||
2 files changed, 26 insertions(+), 16 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/clocksource/tcb_clksrc.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/clocksource/tcb_clksrc.c
|
||||
+++ linux-stable/drivers/clocksource/tcb_clksrc.c
|
||||
--- a/drivers/clocksource/tcb_clksrc.c
|
||||
+++ b/drivers/clocksource/tcb_clksrc.c
|
||||
@@ -23,8 +23,7 @@
|
||||
* this 32 bit free-running counter. the second channel is not used.
|
||||
*
|
||||
|
@ -111,10 +109,8 @@ Index: linux-stable/drivers/clocksource/tcb_clksrc.c
|
|||
return 0;
|
||||
}
|
||||
arch_initcall(tcb_clksrc_init);
|
||||
Index: linux-stable/drivers/misc/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/misc/Kconfig
|
||||
+++ linux-stable/drivers/misc/Kconfig
|
||||
--- a/drivers/misc/Kconfig
|
||||
+++ b/drivers/misc/Kconfig
|
||||
@@ -78,8 +78,7 @@ config ATMEL_TCB_CLKSRC
|
||||
are combined to make a single 32-bit timer.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: completion: Use simple wait queues
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 11 Jan 2013 11:23:51 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Completions have no long lasting callbacks and therefor do not need
|
||||
the complex waitqueue variant. Use simple waitqueues which reduces the
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/sched/core.c | 44 +++++++++++++++++++++++++-------------------
|
||||
3 files changed, 30 insertions(+), 23 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/completion.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/completion.h
|
||||
+++ linux-stable/include/linux/completion.h
|
||||
--- a/include/linux/completion.h
|
||||
+++ b/include/linux/completion.h
|
||||
@@ -8,7 +8,7 @@
|
||||
* See kernel/sched.c for details.
|
||||
*/
|
||||
|
@ -50,10 +48,8 @@ Index: linux-stable/include/linux/completion.h
|
|||
}
|
||||
|
||||
extern void wait_for_completion(struct completion *);
|
||||
Index: linux-stable/include/linux/uprobes.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/uprobes.h
|
||||
+++ linux-stable/include/linux/uprobes.h
|
||||
--- a/include/linux/uprobes.h
|
||||
+++ b/include/linux/uprobes.h
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <linux/errno.h>
|
||||
|
@ -62,11 +58,9 @@ Index: linux-stable/include/linux/uprobes.h
|
|||
|
||||
struct vm_area_struct;
|
||||
struct mm_struct;
|
||||
Index: linux-stable/kernel/sched/core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/core.c
|
||||
+++ linux-stable/kernel/sched/core.c
|
||||
@@ -3028,7 +3028,10 @@ void migrate_disable(void)
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -2988,7 +2988,10 @@ void migrate_disable(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
|
@ -78,7 +72,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
#endif
|
||||
|
||||
preempt_disable();
|
||||
@@ -3060,7 +3063,10 @@ void migrate_enable(void)
|
||||
@@ -3020,7 +3023,10 @@ void migrate_enable(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
|
@ -90,7 +84,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
#endif
|
||||
WARN_ON_ONCE(p->migrate_disable <= 0);
|
||||
|
||||
@@ -3515,10 +3521,10 @@ void complete(struct completion *x)
|
||||
@@ -3475,10 +3481,10 @@ void complete(struct completion *x)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -104,7 +98,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
}
|
||||
EXPORT_SYMBOL(complete);
|
||||
|
||||
@@ -3535,10 +3541,10 @@ void complete_all(struct completion *x)
|
||||
@@ -3495,10 +3501,10 @@ void complete_all(struct completion *x)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -118,7 +112,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
}
|
||||
EXPORT_SYMBOL(complete_all);
|
||||
|
||||
@@ -3547,20 +3553,20 @@ do_wait_for_common(struct completion *x,
|
||||
@@ -3507,20 +3513,20 @@ do_wait_for_common(struct completion *x,
|
||||
long (*action)(long), long timeout, int state)
|
||||
{
|
||||
if (!x->done) {
|
||||
|
@ -144,7 +138,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
if (!x->done)
|
||||
return timeout;
|
||||
}
|
||||
@@ -3574,9 +3580,9 @@ __wait_for_common(struct completion *x,
|
||||
@@ -3534,9 +3540,9 @@ __wait_for_common(struct completion *x,
|
||||
{
|
||||
might_sleep();
|
||||
|
||||
|
@ -156,7 +150,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
return timeout;
|
||||
}
|
||||
|
||||
@@ -3752,12 +3758,12 @@ bool try_wait_for_completion(struct comp
|
||||
@@ -3712,12 +3718,12 @@ bool try_wait_for_completion(struct comp
|
||||
unsigned long flags;
|
||||
int ret = 1;
|
||||
|
||||
|
@ -171,7 +165,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(try_wait_for_completion);
|
||||
@@ -3775,10 +3781,10 @@ bool completion_done(struct completion *
|
||||
@@ -3735,10 +3741,10 @@ bool completion_done(struct completion *
|
||||
unsigned long flags;
|
||||
int ret = 1;
|
||||
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
Subject: cond-resched-lock-rt-tweak.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 22:51:33 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
include/linux/sched.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/include/linux/sched.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/sched.h
|
||||
+++ linux-stable/include/linux/sched.h
|
||||
@@ -2483,7 +2483,7 @@ extern int _cond_resched(void);
|
||||
--- a/include/linux/sched.h
|
||||
+++ b/include/linux/sched.h
|
||||
@@ -2486,7 +2486,7 @@ extern int _cond_resched(void);
|
||||
|
||||
extern int __cond_resched_lock(spinlock_t *lock);
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: cond-resched-softirq-fix.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 14 Jul 2011 09:56:44 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -9,11 +9,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/sched/core.c | 2 ++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
Index: linux-stable/include/linux/sched.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/sched.h
|
||||
+++ linux-stable/include/linux/sched.h
|
||||
@@ -2494,12 +2494,16 @@ extern int __cond_resched_lock(spinlock_
|
||||
--- a/include/linux/sched.h
|
||||
+++ b/include/linux/sched.h
|
||||
@@ -2497,12 +2497,16 @@ extern int __cond_resched_lock(spinlock_
|
||||
__cond_resched_lock(lock); \
|
||||
})
|
||||
|
||||
|
@ -30,11 +28,9 @@ Index: linux-stable/include/linux/sched.h
|
|||
|
||||
/*
|
||||
* Does a critical section need to be broken due to another
|
||||
Index: linux-stable/kernel/sched/core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/core.c
|
||||
+++ linux-stable/kernel/sched/core.c
|
||||
@@ -4443,6 +4443,7 @@ int __cond_resched_lock(spinlock_t *lock
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -4485,6 +4485,7 @@ int __cond_resched_lock(spinlock_t *lock
|
||||
}
|
||||
EXPORT_SYMBOL(__cond_resched_lock);
|
||||
|
||||
|
@ -42,7 +38,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
int __sched __cond_resched_softirq(void)
|
||||
{
|
||||
BUG_ON(!in_softirq());
|
||||
@@ -4456,6 +4457,7 @@ int __sched __cond_resched_softirq(void)
|
||||
@@ -4498,6 +4499,7 @@ int __sched __cond_resched_softirq(void)
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(__cond_resched_softirq);
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 16 Apr 2013 12:34:09 +0200
|
||||
Subject: [PATCH] net/cpsw: Use fallback for active_slave
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
|
||||
In case the .dts has not been yet updated we also try to look for the
|
||||
old "cpts_active_slave" property.
|
||||
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/net/ethernet/ti/cpsw.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/ti/cpsw.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/ti/cpsw.c
|
||||
+++ linux-stable/drivers/net/ethernet/ti/cpsw.c
|
||||
@@ -1466,8 +1466,12 @@ static int cpsw_probe_dt(struct cpsw_pla
|
||||
|
||||
if (of_property_read_u32(node, "active_slave", &prop)) {
|
||||
pr_err("Missing active_slave property in the DT.\n");
|
||||
- ret = -EINVAL;
|
||||
- goto error_ret;
|
||||
+ if (of_property_read_u32(node, "cpts_active_slave", &prop)) {
|
||||
+ ret = -EINVAL;
|
||||
+ goto error_ret;
|
||||
+ } else {
|
||||
+ pr_err("Using old cpts_active_slave as fallback.\n");
|
||||
+ }
|
||||
}
|
||||
data->active_slave = prop;
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 24 Apr 2013 20:01:22 +0200
|
||||
Subject: [PATCH] net/cpsw: use a lock around source testing
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
|
||||
For some reason on RT it happens that the TX interrupt fires over and
|
||||
over again but according to tx_stat there is nothing going on. Same goes
|
||||
for RX but not that often.
|
||||
With this lock around it this is gone. However I still see from time to
|
||||
time interrupts where each source is set to 0.
|
||||
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/net/ethernet/ti/cpsw.c | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/ti/cpsw.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/ti/cpsw.c
|
||||
+++ linux-stable/drivers/net/ethernet/ti/cpsw.c
|
||||
@@ -490,7 +490,7 @@ void cpsw_rx_handler(void *token, int le
|
||||
skb_put(skb, len);
|
||||
cpts_rx_timestamp(priv->cpts, skb);
|
||||
skb->protocol = eth_type_trans(skb, ndev);
|
||||
- netif_receive_skb(skb);
|
||||
+ netif_rx(skb);
|
||||
priv->stats.rx_bytes += len;
|
||||
priv->stats.rx_packets++;
|
||||
} else {
|
||||
@@ -507,19 +507,24 @@ void cpsw_rx_handler(void *token, int le
|
||||
static irqreturn_t cpsw_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
struct cpsw_priv *priv = dev_id;
|
||||
+ unsigned long flags;
|
||||
u32 rx, tx, rx_thresh;
|
||||
|
||||
+ spin_lock_irqsave(&priv->lock, flags);
|
||||
rx_thresh = __raw_readl(&priv->wr_regs->rx_thresh_stat);
|
||||
rx = __raw_readl(&priv->wr_regs->rx_stat);
|
||||
tx = __raw_readl(&priv->wr_regs->tx_stat);
|
||||
- if (!rx_thresh && !rx && !tx)
|
||||
+ if (!rx_thresh && !rx && !tx) {
|
||||
+ spin_unlock_irqrestore(&priv->lock, flags);
|
||||
return IRQ_NONE;
|
||||
+ }
|
||||
|
||||
cpsw_intr_disable(priv);
|
||||
if (priv->irq_enabled == true) {
|
||||
cpsw_disable_irq(priv);
|
||||
priv->irq_enabled = false;
|
||||
}
|
||||
+ spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
if (netif_running(priv->ndev)) {
|
||||
napi_schedule(&priv->napi);
|
||||
@@ -541,7 +546,9 @@ static int cpsw_poll(struct napi_struct
|
||||
{
|
||||
struct cpsw_priv *priv = napi_to_priv(napi);
|
||||
int num_tx, num_rx;
|
||||
+ unsigned long flags;
|
||||
|
||||
+ spin_lock_irqsave(&priv->lock, flags);
|
||||
num_tx = cpdma_chan_process(priv->txch, 128);
|
||||
if (num_tx)
|
||||
cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_TX);
|
|
@ -1,7 +1,7 @@
|
|||
Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
|
||||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Fri, 02 Mar 2012 10:36:57 -0500
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
|
||||
might be != RUNNING. So the mutex wakeup will set the state
|
||||
|
@ -23,10 +23,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/cpu.c | 35 ++++++++++++++++++++++++++---------
|
||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
||||
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -51,7 +51,12 @@ static int cpu_hotplug_disabled;
|
||||
|
||||
static struct {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <srostedt@redhat.com>
|
||||
Date: Mon, 16 Jul 2012 08:07:43 +0000
|
||||
Subject: cpu/rt: Rework cpu down for PREEMPT_RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Bringing a CPU down is a pain with the PREEMPT_RT kernel because
|
||||
tasks can be preempted in many more places than in non-RT. In
|
||||
|
@ -55,11 +55,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/sched/core.c | 82 ++++++++++++++++-
|
||||
3 files changed, 284 insertions(+), 45 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/sched.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/sched.h
|
||||
+++ linux-stable/include/linux/sched.h
|
||||
@@ -1808,6 +1808,10 @@ extern void do_set_cpus_allowed(struct t
|
||||
--- a/include/linux/sched.h
|
||||
+++ b/include/linux/sched.h
|
||||
@@ -1811,6 +1811,10 @@ extern void do_set_cpus_allowed(struct t
|
||||
|
||||
extern int set_cpus_allowed_ptr(struct task_struct *p,
|
||||
const struct cpumask *new_mask);
|
||||
|
@ -70,7 +68,7 @@ Index: linux-stable/include/linux/sched.h
|
|||
#else
|
||||
static inline void do_set_cpus_allowed(struct task_struct *p,
|
||||
const struct cpumask *new_mask)
|
||||
@@ -1820,6 +1824,9 @@ static inline int set_cpus_allowed_ptr(s
|
||||
@@ -1823,6 +1827,9 @@ static inline int set_cpus_allowed_ptr(s
|
||||
return -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
@ -80,10 +78,8 @@ Index: linux-stable/include/linux/sched.h
|
|||
#endif
|
||||
|
||||
#ifdef CONFIG_NO_HZ_COMMON
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -51,12 +51,7 @@ static int cpu_hotplug_disabled;
|
||||
|
||||
static struct {
|
||||
|
@ -445,11 +441,9 @@ Index: linux-stable/kernel/cpu.c
|
|||
err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
|
||||
if (err) {
|
||||
/* CPU didn't die: tell everyone. Can't complain. */
|
||||
Index: linux-stable/kernel/sched/core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/core.c
|
||||
+++ linux-stable/kernel/sched/core.c
|
||||
@@ -2963,7 +2963,7 @@ void migrate_disable(void)
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -2935,7 +2935,7 @@ void migrate_disable(void)
|
||||
{
|
||||
struct task_struct *p = current;
|
||||
|
||||
|
@ -458,7 +452,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
#ifdef CONFIG_SCHED_DEBUG
|
||||
p->migrate_disable_atomic++;
|
||||
#endif
|
||||
@@ -2994,7 +2994,7 @@ void migrate_enable(void)
|
||||
@@ -2966,7 +2966,7 @@ void migrate_enable(void)
|
||||
unsigned long flags;
|
||||
struct rq *rq;
|
||||
|
||||
|
@ -467,7 +461,7 @@ Index: linux-stable/kernel/sched/core.c
|
|||
#ifdef CONFIG_SCHED_DEBUG
|
||||
p->migrate_disable_atomic--;
|
||||
#endif
|
||||
@@ -4966,6 +4966,84 @@ void do_set_cpus_allowed(struct task_str
|
||||
@@ -4969,6 +4969,84 @@ void do_set_cpus_allowed(struct task_str
|
||||
cpumask_copy(&p->cpus_allowed, new_mask);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: cpu-rt-variants.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 17 Jun 2011 15:42:38 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
include/linux/smp.h | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
Index: linux-stable/include/linux/smp.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/smp.h
|
||||
+++ linux-stable/include/linux/smp.h
|
||||
--- a/include/linux/smp.h
|
||||
+++ b/include/linux/smp.h
|
||||
@@ -223,6 +223,14 @@ static inline void kick_all_cpus_sync(vo
|
||||
#define get_cpu() ({ preempt_disable(); smp_processor_id(); })
|
||||
#define put_cpu() preempt_enable()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
We can't deal with the cpumask allocations which happen in atomic
|
||||
context (see arch/x86/kernel/apic/io_apic.c) on RT right now.
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
lib/Kconfig | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/arch/x86/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/x86/Kconfig
|
||||
+++ linux-stable/arch/x86/Kconfig
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -799,7 +799,7 @@ config IOMMU_HELPER
|
||||
config MAXSMP
|
||||
bool "Enable Maximum number of SMP Processors and NUMA Nodes"
|
||||
|
@ -25,10 +23,8 @@ Index: linux-stable/arch/x86/Kconfig
|
|||
---help---
|
||||
Enable maximum number of CPUS and NUMA Nodes for this architecture.
|
||||
If unsure, say N.
|
||||
Index: linux-stable/lib/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/lib/Kconfig
|
||||
+++ linux-stable/lib/Kconfig
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -315,6 +315,7 @@ config CHECK_SIGNATURE
|
||||
|
||||
config CPUMASK_OFFSTACK
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: debugobjects-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 21:41:35 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
lib/debugobjects.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/lib/debugobjects.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/lib/debugobjects.c
|
||||
+++ linux-stable/lib/debugobjects.c
|
||||
--- a/lib/debugobjects.c
|
||||
+++ b/lib/debugobjects.c
|
||||
@@ -308,7 +308,10 @@ __debug_object_init(void *addr, struct d
|
||||
struct debug_obj *obj;
|
||||
unsigned long flags;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: dm: Make rt aware
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Mon, 14 Nov 2011 23:06:09 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
|
||||
interrupts legitimately enabled here as we cant deadlock against the
|
||||
|
@ -14,11 +14,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/md/dm.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/md/dm.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/md/dm.c
|
||||
+++ linux-stable/drivers/md/dm.c
|
||||
@@ -1706,14 +1706,14 @@ static void dm_request_fn(struct request
|
||||
--- a/drivers/md/dm.c
|
||||
+++ b/drivers/md/dm.c
|
||||
@@ -1713,14 +1713,14 @@ static void dm_request_fn(struct request
|
||||
if (map_request(ti, clone, md))
|
||||
goto requeued;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:24 -0500
|
||||
Subject: drivers/net: Use disable_irq_nosync() in 8139too
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Use disable_irq_nosync() instead of disable_irq() as this might be
|
||||
called in atomic context with netpoll.
|
||||
|
@ -13,10 +13,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/net/ethernet/realtek/8139too.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/realtek/8139too.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/realtek/8139too.c
|
||||
+++ linux-stable/drivers/net/ethernet/realtek/8139too.c
|
||||
--- a/drivers/net/ethernet/realtek/8139too.c
|
||||
+++ b/drivers/net/ethernet/realtek/8139too.c
|
||||
@@ -2213,7 +2213,7 @@ static void rtl8139_poll_controller(stru
|
||||
struct rtl8139_private *tp = netdev_priv(dev);
|
||||
const int irq = tp->pci_dev->irq;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sat, 20 Jun 2009 11:36:54 +0200
|
||||
Subject: drivers/net: fix livelock issues
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
|
||||
optimization. The reason is that the softirq thread is rescheduling
|
||||
|
@ -22,11 +22,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/net/rionet.c | 6 +-----
|
||||
7 files changed, 9 insertions(+), 31 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
||||
+++ linux-stable/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
||||
@@ -2168,11 +2168,7 @@ static netdev_tx_t atl1c_xmit_frame(stru
|
||||
--- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
||||
+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
||||
@@ -2206,11 +2206,7 @@ static netdev_tx_t atl1c_xmit_frame(stru
|
||||
}
|
||||
|
||||
tpd_req = atl1c_cal_tpd_req(skb);
|
||||
|
@ -39,11 +37,9 @@ Index: linux-stable/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
|||
|
||||
if (atl1c_tpd_avail(adapter, type) < tpd_req) {
|
||||
/* no enough descriptor, just stop queue */
|
||||
Index: linux-stable/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
||||
+++ linux-stable/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
||||
@@ -1799,8 +1799,7 @@ static netdev_tx_t atl1e_xmit_frame(stru
|
||||
--- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
||||
+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
||||
@@ -1838,8 +1838,7 @@ static netdev_tx_t atl1e_xmit_frame(stru
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
tpd_req = atl1e_cal_tdp_req(skb);
|
||||
|
@ -53,10 +49,8 @@ Index: linux-stable/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
|||
|
||||
if (atl1e_tpd_avail(adapter) < tpd_req) {
|
||||
/* no enough descriptor, just stop queue */
|
||||
Index: linux-stable/drivers/net/ethernet/chelsio/cxgb/sge.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/chelsio/cxgb/sge.c
|
||||
+++ linux-stable/drivers/net/ethernet/chelsio/cxgb/sge.c
|
||||
--- a/drivers/net/ethernet/chelsio/cxgb/sge.c
|
||||
+++ b/drivers/net/ethernet/chelsio/cxgb/sge.c
|
||||
@@ -1665,8 +1665,7 @@ static int t1_sge_tx(struct sk_buff *skb
|
||||
struct cmdQ *q = &sge->cmdQ[qid];
|
||||
unsigned int credits, pidx, genbit, count, use_sched_skb = 0;
|
||||
|
@ -67,10 +61,8 @@ Index: linux-stable/drivers/net/ethernet/chelsio/cxgb/sge.c
|
|||
|
||||
reclaim_completed_tx(sge, q);
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/neterion/s2io.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/neterion/s2io.c
|
||||
+++ linux-stable/drivers/net/ethernet/neterion/s2io.c
|
||||
--- a/drivers/net/ethernet/neterion/s2io.c
|
||||
+++ b/drivers/net/ethernet/neterion/s2io.c
|
||||
@@ -4089,12 +4089,7 @@ static netdev_tx_t s2io_xmit(struct sk_b
|
||||
[skb->priority & (MAX_TX_FIFOS - 1)];
|
||||
fifo = &mac_control->fifos[queue];
|
||||
|
@ -85,10 +77,8 @@ Index: linux-stable/drivers/net/ethernet/neterion/s2io.c
|
|||
|
||||
if (sp->config.multiq) {
|
||||
if (__netif_subqueue_stopped(dev, fifo->fifo_no)) {
|
||||
Index: linux-stable/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
+++ linux-stable/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
--- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
||||
@@ -2109,10 +2109,8 @@ static int pch_gbe_xmit_frame(struct sk_
|
||||
struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
|
||||
unsigned long flags;
|
||||
|
@ -102,10 +92,8 @@ Index: linux-stable/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
|
|||
if (unlikely(!PCH_GBE_DESC_UNUSED(tx_ring))) {
|
||||
netif_stop_queue(netdev);
|
||||
spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
|
||||
Index: linux-stable/drivers/net/ethernet/tehuti/tehuti.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/tehuti/tehuti.c
|
||||
+++ linux-stable/drivers/net/ethernet/tehuti/tehuti.c
|
||||
--- a/drivers/net/ethernet/tehuti/tehuti.c
|
||||
+++ b/drivers/net/ethernet/tehuti/tehuti.c
|
||||
@@ -1629,13 +1629,8 @@ static netdev_tx_t bdx_tx_transmit(struc
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -122,10 +110,8 @@ Index: linux-stable/drivers/net/ethernet/tehuti/tehuti.c
|
|||
|
||||
/* build tx descriptor */
|
||||
BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */
|
||||
Index: linux-stable/drivers/net/rionet.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/rionet.c
|
||||
+++ linux-stable/drivers/net/rionet.c
|
||||
--- a/drivers/net/rionet.c
|
||||
+++ b/drivers/net/rionet.c
|
||||
@@ -174,11 +174,7 @@ static int rionet_start_xmit(struct sk_b
|
||||
unsigned long flags;
|
||||
int add_num = 1;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 1 Apr 2010 20:20:57 +0200
|
||||
Subject: drivers: net: gianfar: Make RT aware
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The adjust_link() disables interrupts before taking the queue
|
||||
locks. On RT those locks are converted to "sleeping" locks and
|
||||
|
@ -16,10 +16,8 @@ Tested-by: Xianghua Xiao <xiaoxianghua@gmail.com>
|
|||
drivers/net/ethernet/freescale/gianfar.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/freescale/gianfar.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/freescale/gianfar.c
|
||||
+++ linux-stable/drivers/net/ethernet/freescale/gianfar.c
|
||||
--- a/drivers/net/ethernet/freescale/gianfar.c
|
||||
+++ b/drivers/net/ethernet/freescale/gianfar.c
|
||||
@@ -1674,7 +1674,7 @@ void stop_gfar(struct net_device *dev)
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:30:18 -0500
|
||||
Subject: drivers/net: tulip_remove_one needs to call pci_disable_device()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Otherwise the device is not completely shut down.
|
||||
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/net/ethernet/dec/tulip/tulip_core.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/dec/tulip/tulip_core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/dec/tulip/tulip_core.c
|
||||
+++ linux-stable/drivers/net/ethernet/dec/tulip/tulip_core.c
|
||||
--- a/drivers/net/ethernet/dec/tulip/tulip_core.c
|
||||
+++ b/drivers/net/ethernet/dec/tulip/tulip_core.c
|
||||
@@ -1943,6 +1943,7 @@ static void tulip_remove_one(struct pci_
|
||||
pci_iounmap(pdev, tp->base_addr);
|
||||
free_netdev (dev);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Fri, 3 Jul 2009 08:30:00 -0500
|
||||
Subject: drivers/net: vortex fix locking issues
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Argh, cut and paste wasn't enough...
|
||||
|
||||
|
@ -18,10 +18,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
|
||||
Index: linux-stable/drivers/net/ethernet/3com/3c59x.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/ethernet/3com/3c59x.c
|
||||
+++ linux-stable/drivers/net/ethernet/3com/3c59x.c
|
||||
--- a/drivers/net/ethernet/3com/3c59x.c
|
||||
+++ b/drivers/net/ethernet/3com/3c59x.c
|
||||
@@ -842,9 +842,9 @@ static void poll_vortex(struct net_devic
|
||||
{
|
||||
struct vortex_private *vp = netdev_priv(dev);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
||||
Subject: drivers: random: Reduce preempt disabled region
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
No need to keep preemption disabled across the whole function.
|
||||
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/char/random.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/char/random.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/char/random.c
|
||||
+++ linux-stable/drivers/char/random.c
|
||||
--- a/drivers/char/random.c
|
||||
+++ b/drivers/char/random.c
|
||||
@@ -676,9 +676,12 @@ static void add_timer_randomness(struct
|
||||
preempt_disable();
|
||||
/* if over the trickle threshold, use only 1 in 4096 samples */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:30:01 -0500
|
||||
Subject: serial: 8250: Call flush_to_ldisc when the irq is threaded
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
|
||||
|
@ -9,10 +9,8 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|||
drivers/tty/tty_buffer.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/drivers/tty/tty_buffer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/tty/tty_buffer.c
|
||||
+++ linux-stable/drivers/tty/tty_buffer.c
|
||||
--- a/drivers/tty/tty_buffer.c
|
||||
+++ b/drivers/tty/tty_buffer.c
|
||||
@@ -517,10 +517,15 @@ void tty_flip_buffer_push(struct tty_por
|
||||
buf->tail->commit = buf->tail->used;
|
||||
spin_unlock_irqrestore(&buf->lock, flags);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:30:01 -0500
|
||||
Subject: serial: 8250: Clean up the locking for -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
|
@ -10,10 +10,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/tty/serial/8250/8250_core.c | 15 +++++----------
|
||||
1 file changed, 5 insertions(+), 10 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/tty/serial/8250/8250_core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/tty/serial/8250/8250_core.c
|
||||
+++ linux-stable/drivers/tty/serial/8250/8250_core.c
|
||||
--- a/drivers/tty/serial/8250/8250_core.c
|
||||
+++ b/drivers/tty/serial/8250/8250_core.c
|
||||
@@ -2860,14 +2860,10 @@ serial8250_console_write(struct console
|
||||
|
||||
touch_nmi_watchdog();
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: drivers-tty-fix-omap-lock-crap.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
drivers/tty/serial/omap-serial.c | 12 ++++--------
|
||||
1 file changed, 4 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/tty/serial/omap-serial.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/tty/serial/omap-serial.c
|
||||
+++ linux-stable/drivers/tty/serial/omap-serial.c
|
||||
--- a/drivers/tty/serial/omap-serial.c
|
||||
+++ b/drivers/tty/serial/omap-serial.c
|
||||
@@ -1169,13 +1169,10 @@ serial_omap_console_write(struct console
|
||||
|
||||
pm_runtime_get_sync(up->dev);
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: drivers-tty-pl011-irq-disable-madness.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 08 Jan 2013 21:36:51 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
drivers/tty/serial/amba-pl011.c | 15 ++++++++++-----
|
||||
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/tty/serial/amba-pl011.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/tty/serial/amba-pl011.c
|
||||
+++ linux-stable/drivers/tty/serial/amba-pl011.c
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1923,13 +1923,19 @@ pl011_console_write(struct console *co,
|
||||
|
||||
clk_enable(uap->clk);
|
||||
|
|
|
@ -2,7 +2,7 @@ From d841118ac80c5bfb18f47984bc40687eed08b714 Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 25 Apr 2013 18:12:52 +0200
|
||||
Subject: [PATCH] drm/i915: drop trace_i915_gem_ring_dispatch on rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
This tracepoint is responsible for:
|
||||
|
||||
|
@ -46,10 +46,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: linux-stable/drivers/gpu/drm/i915/i915_gem_execbuffer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c
|
||||
+++ linux-stable/drivers/gpu/drm/i915/i915_gem_execbuffer.c
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
|
||||
@@ -1071,7 +1071,9 @@ i915_gem_do_execbuffer(struct drm_device
|
||||
goto err;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: early-printk-consolidate.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sat, 23 Jul 2011 11:04:08 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -9,10 +9,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
arch/sparc/kernel/setup_64.c | 8 +++++++-
|
||||
2 files changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/arch/sparc/kernel/setup_32.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/sparc/kernel/setup_32.c
|
||||
+++ linux-stable/arch/sparc/kernel/setup_32.c
|
||||
--- a/arch/sparc/kernel/setup_32.c
|
||||
+++ b/arch/sparc/kernel/setup_32.c
|
||||
@@ -309,6 +309,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
boot_flags_init(*cmdline_p);
|
||||
|
@ -21,10 +19,8 @@ Index: linux-stable/arch/sparc/kernel/setup_32.c
|
|||
register_console(&prom_early_console);
|
||||
|
||||
printk("ARCH: ");
|
||||
Index: linux-stable/arch/sparc/kernel/setup_64.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/sparc/kernel/setup_64.c
|
||||
+++ linux-stable/arch/sparc/kernel/setup_64.c
|
||||
--- a/arch/sparc/kernel/setup_64.c
|
||||
+++ b/arch/sparc/kernel/setup_64.c
|
||||
@@ -551,6 +551,12 @@ static void __init init_sparc64_elf_hwca
|
||||
pause_patch();
|
||||
}
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: epoll.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
fs/eventpoll.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/fs/eventpoll.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/eventpoll.c
|
||||
+++ linux-stable/fs/eventpoll.c
|
||||
--- a/fs/eventpoll.c
|
||||
+++ b/fs/eventpoll.c
|
||||
@@ -500,12 +500,12 @@ static int ep_poll_wakeup_proc(void *pri
|
||||
*/
|
||||
static void ep_poll_safewake(wait_queue_head_t *wq)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: filemap-fix-up.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 17 Jun 2011 18:56:24 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Wrecked-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
|
@ -10,10 +10,8 @@ Link: http://lkml.kernel.org/n/tip-m6yuzd6ul717hlnl2gj6p3ou@git.kernel.org
|
|||
mm/filemap.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/mm/filemap.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/mm/filemap.c
|
||||
+++ linux-stable/mm/filemap.c
|
||||
--- a/mm/filemap.c
|
||||
+++ b/mm/filemap.c
|
||||
@@ -1974,7 +1974,7 @@ size_t iov_iter_copy_from_user_atomic(st
|
||||
char *kaddr;
|
||||
size_t copied;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Subject: x86: Do not disable preemption in int3 on 32bit
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Preemption must be disabled before enabling interrupts in do_trap
|
||||
on x86_64 because the stack in use for int3 and debug is a per CPU
|
||||
|
@ -23,10 +23,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
arch/x86/kernel/traps.c | 32 +++++++++++++++++++++++---------
|
||||
1 file changed, 23 insertions(+), 9 deletions(-)
|
||||
|
||||
Index: linux-stable/arch/x86/kernel/traps.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/x86/kernel/traps.c
|
||||
+++ linux-stable/arch/x86/kernel/traps.c
|
||||
--- a/arch/x86/kernel/traps.c
|
||||
+++ b/arch/x86/kernel/traps.c
|
||||
@@ -85,9 +85,21 @@ static inline void conditional_sti(struc
|
||||
local_irq_enable();
|
||||
}
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: fs-block-rt-support.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 14 Jun 2011 17:05:09 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
block/blk-core.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/block/blk-core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/block/blk-core.c
|
||||
+++ linux-stable/block/blk-core.c
|
||||
--- a/block/blk-core.c
|
||||
+++ b/block/blk-core.c
|
||||
@@ -232,7 +232,7 @@ EXPORT_SYMBOL(blk_delay_queue);
|
||||
**/
|
||||
void blk_start_queue(struct request_queue *q)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 07 Mar 2012 21:00:34 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Retry loops on RT might loop forever when the modifying side was
|
||||
preempted. Use cpu_chill() instead of cpu_relax() to let the system
|
||||
|
@ -16,10 +16,8 @@ Cc: stable-rt@vger.kernel.org
|
|||
fs/namespace.c | 7 ++++---
|
||||
4 files changed, 10 insertions(+), 7 deletions(-)
|
||||
|
||||
Index: linux-stable/fs/autofs4/autofs_i.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/autofs4/autofs_i.h
|
||||
+++ linux-stable/fs/autofs4/autofs_i.h
|
||||
--- a/fs/autofs4/autofs_i.h
|
||||
+++ b/fs/autofs4/autofs_i.h
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <linux/sched.h>
|
||||
#include <linux/mount.h>
|
||||
|
@ -28,10 +26,8 @@ Index: linux-stable/fs/autofs4/autofs_i.h
|
|||
#include <asm/current.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
Index: linux-stable/fs/autofs4/expire.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/autofs4/expire.c
|
||||
+++ linux-stable/fs/autofs4/expire.c
|
||||
--- a/fs/autofs4/expire.c
|
||||
+++ b/fs/autofs4/expire.c
|
||||
@@ -157,7 +157,7 @@ again:
|
||||
parent = p->d_parent;
|
||||
if (!spin_trylock(&parent->d_lock)) {
|
||||
|
@ -41,10 +37,8 @@ Index: linux-stable/fs/autofs4/expire.c
|
|||
goto relock;
|
||||
}
|
||||
spin_unlock(&p->d_lock);
|
||||
Index: linux-stable/fs/dcache.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/dcache.c
|
||||
+++ linux-stable/fs/dcache.c
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <linux/rculist_bl.h>
|
||||
#include <linux/prefetch.h>
|
||||
|
@ -80,10 +74,8 @@ Index: linux-stable/fs/dcache.c
|
|||
goto again;
|
||||
}
|
||||
dentry->d_flags &= ~DCACHE_CANT_MOUNT;
|
||||
Index: linux-stable/fs/namespace.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/namespace.c
|
||||
+++ linux-stable/fs/namespace.c
|
||||
--- a/fs/namespace.c
|
||||
+++ b/fs/namespace.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/proc_ns.h>
|
||||
|
|
|
@ -2,7 +2,7 @@ From d32f5420ac164141683c51e8a8fce666423de492 Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 3 Apr 2013 12:43:30 +0200
|
||||
Subject: [PATCH] fs/fscache: remove spin_lock() from the condition in while()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The spinlock() within the condition in while() will cause a compile error
|
||||
if it is not a function. This is not a problem on mainline but it does not
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
fs/fscache/page.c | 13 ++++++++-----
|
||||
1 file changed, 8 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: linux-stable/fs/fscache/page.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/fscache/page.c
|
||||
+++ linux-stable/fs/fscache/page.c
|
||||
--- a/fs/fscache/page.c
|
||||
+++ b/fs/fscache/page.c
|
||||
@@ -796,11 +796,13 @@ void fscache_invalidate_writes(struct fs
|
||||
|
||||
_enter("");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Mike Galbraith <mgalbraith@suse.de>
|
||||
Date: Wed, 11 Jul 2012 22:05:20 +0000
|
||||
Subject: fs, jbd: pull your plug when waiting for space
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
With an -rt kernel, and a heavy sync IO load, tasks can jam
|
||||
up on journal locks without unplugging, which can lead to
|
||||
|
@ -17,10 +17,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
fs/jbd/checkpoint.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: linux-stable/fs/jbd/checkpoint.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/jbd/checkpoint.c
|
||||
+++ linux-stable/fs/jbd/checkpoint.c
|
||||
--- a/fs/jbd/checkpoint.c
|
||||
+++ b/fs/jbd/checkpoint.c
|
||||
@@ -129,6 +129,8 @@ void __log_wait_for_space(journal_t *jou
|
||||
if (journal->j_flags & JFS_ABORT)
|
||||
return;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
||||
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
bit_spin_locks break under RT.
|
||||
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
include/linux/jbd_common.h | 24 ++++++++++++++++++++++++
|
||||
2 files changed, 34 insertions(+)
|
||||
|
||||
Index: linux-stable/include/linux/buffer_head.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/buffer_head.h
|
||||
+++ linux-stable/include/linux/buffer_head.h
|
||||
--- a/include/linux/buffer_head.h
|
||||
+++ b/include/linux/buffer_head.h
|
||||
@@ -76,6 +76,11 @@ struct buffer_head {
|
||||
atomic_t b_count; /* users using this buffer_head */
|
||||
#ifdef CONFIG_PREEMPT_RT_BASE
|
||||
|
@ -42,10 +40,8 @@ Index: linux-stable/include/linux/buffer_head.h
|
|||
#endif
|
||||
}
|
||||
|
||||
Index: linux-stable/include/linux/jbd_common.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/jbd_common.h
|
||||
+++ linux-stable/include/linux/jbd_common.h
|
||||
--- a/include/linux/jbd_common.h
|
||||
+++ b/include/linux/jbd_common.h
|
||||
@@ -39,32 +39,56 @@ static inline struct journal_head *bh2jh
|
||||
|
||||
static inline void jbd_lock_bh_state(struct buffer_head *bh)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 19 Jul 2009 08:44:27 -0500
|
||||
Subject: fs: namespace preemption fix
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
On RT we cannot loop with preemption disabled here as
|
||||
mnt_make_readonly() might have been preempted. We can safely enable
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
fs/namespace.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/fs/namespace.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/namespace.c
|
||||
+++ linux-stable/fs/namespace.c
|
||||
--- a/fs/namespace.c
|
||||
+++ b/fs/namespace.c
|
||||
@@ -315,8 +315,11 @@ int __mnt_want_write(struct vfsmount *m)
|
||||
* incremented count after it has set MNT_WRITE_HOLD.
|
||||
*/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Mike Galbraith <efault@gmx.de>
|
||||
Date: Fri, 3 Jul 2009 08:44:12 -0500
|
||||
Subject: fs: ntfs: disable interrupt only on !RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
|
||||
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
|
||||
|
@ -40,10 +40,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
fs/ntfs/aops.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/fs/ntfs/aops.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/ntfs/aops.c
|
||||
+++ linux-stable/fs/ntfs/aops.c
|
||||
--- a/fs/ntfs/aops.c
|
||||
+++ b/fs/ntfs/aops.c
|
||||
@@ -144,13 +144,13 @@ static void ntfs_end_buffer_async_read(s
|
||||
recs = PAGE_CACHE_SIZE / rec_size;
|
||||
/* Should have been verified before we got here... */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
||||
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
||||
replacements with a real spinlock.
|
||||
|
@ -13,10 +13,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
include/linux/buffer_head.h | 34 ++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 44 insertions(+), 21 deletions(-)
|
||||
|
||||
Index: linux-stable/fs/buffer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/buffer.c
|
||||
+++ linux-stable/fs/buffer.c
|
||||
--- a/fs/buffer.c
|
||||
+++ b/fs/buffer.c
|
||||
@@ -288,8 +288,7 @@ static void end_buffer_async_read(struct
|
||||
* decide that the page is now completely done.
|
||||
*/
|
||||
|
@ -84,10 +82,8 @@ Index: linux-stable/fs/buffer.c
|
|||
preempt_disable();
|
||||
__this_cpu_inc(bh_accounting.nr);
|
||||
recalc_bh_state();
|
||||
Index: linux-stable/fs/ntfs/aops.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/fs/ntfs/aops.c
|
||||
+++ linux-stable/fs/ntfs/aops.c
|
||||
--- a/fs/ntfs/aops.c
|
||||
+++ b/fs/ntfs/aops.c
|
||||
@@ -108,8 +108,7 @@ static void ntfs_end_buffer_async_read(s
|
||||
"0x%llx.", (unsigned long long)bh->b_blocknr);
|
||||
}
|
||||
|
@ -119,10 +115,8 @@ Index: linux-stable/fs/ntfs/aops.c
|
|||
}
|
||||
|
||||
/**
|
||||
Index: linux-stable/include/linux/buffer_head.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/buffer_head.h
|
||||
+++ linux-stable/include/linux/buffer_head.h
|
||||
--- a/include/linux/buffer_head.h
|
||||
+++ b/include/linux/buffer_head.h
|
||||
@@ -74,8 +74,42 @@ struct buffer_head {
|
||||
struct address_space *b_assoc_map; /* mapping this buffer is
|
||||
associated with */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: ftrace-migrate-disable-tracing.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -11,10 +11,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/trace/trace_output.c | 5 +++++
|
||||
4 files changed, 15 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/ftrace_event.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/ftrace_event.h
|
||||
+++ linux-stable/include/linux/ftrace_event.h
|
||||
--- a/include/linux/ftrace_event.h
|
||||
+++ b/include/linux/ftrace_event.h
|
||||
@@ -56,6 +56,8 @@ struct trace_entry {
|
||||
unsigned char flags;
|
||||
unsigned char preempt_count;
|
||||
|
@ -24,11 +22,9 @@ Index: linux-stable/include/linux/ftrace_event.h
|
|||
};
|
||||
|
||||
#define FTRACE_MAX_EVENT \
|
||||
Index: linux-stable/kernel/trace/trace.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/trace/trace.c
|
||||
+++ linux-stable/kernel/trace/trace.c
|
||||
@@ -368,7 +368,7 @@ int __trace_puts(unsigned long ip, const
|
||||
--- a/kernel/trace/trace.c
|
||||
+++ b/kernel/trace/trace.c
|
||||
@@ -399,7 +399,7 @@ int __trace_puts(unsigned long ip, const
|
||||
|
||||
local_save_flags(irq_flags);
|
||||
buffer = global_trace.trace_buffer.buffer;
|
||||
|
@ -37,7 +33,7 @@ Index: linux-stable/kernel/trace/trace.c
|
|||
irq_flags, preempt_count());
|
||||
if (!event)
|
||||
return 0;
|
||||
@@ -1419,6 +1419,8 @@ tracing_generic_entry_update(struct trac
|
||||
@@ -1449,6 +1449,8 @@ tracing_generic_entry_update(struct trac
|
||||
((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
|
||||
((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) |
|
||||
(need_resched() ? TRACE_FLAG_NEED_RESCHED : 0);
|
||||
|
@ -46,7 +42,7 @@ Index: linux-stable/kernel/trace/trace.c
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(tracing_generic_entry_update);
|
||||
|
||||
@@ -2322,9 +2324,10 @@ static void print_lat_help_header(struct
|
||||
@@ -2352,9 +2354,10 @@ static void print_lat_help_header(struct
|
||||
seq_puts(m, "# | / _----=> need-resched \n");
|
||||
seq_puts(m, "# || / _---=> hardirq/softirq \n");
|
||||
seq_puts(m, "# ||| / _--=> preempt-depth \n");
|
||||
|
@ -60,11 +56,9 @@ Index: linux-stable/kernel/trace/trace.c
|
|||
}
|
||||
|
||||
static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
|
||||
Index: linux-stable/kernel/trace/trace_events.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/trace/trace_events.c
|
||||
+++ linux-stable/kernel/trace/trace_events.c
|
||||
@@ -154,6 +154,7 @@ static int trace_define_common_fields(vo
|
||||
--- a/kernel/trace/trace_events.c
|
||||
+++ b/kernel/trace/trace_events.c
|
||||
@@ -171,6 +171,7 @@ static int trace_define_common_fields(vo
|
||||
__common_field(unsigned char, flags);
|
||||
__common_field(unsigned char, preempt_count);
|
||||
__common_field(int, pid);
|
||||
|
@ -72,10 +66,8 @@ Index: linux-stable/kernel/trace/trace_events.c
|
|||
|
||||
return ret;
|
||||
}
|
||||
Index: linux-stable/kernel/trace/trace_output.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/trace/trace_output.c
|
||||
+++ linux-stable/kernel/trace/trace_output.c
|
||||
--- a/kernel/trace/trace_output.c
|
||||
+++ b/kernel/trace/trace_output.c
|
||||
@@ -635,6 +635,11 @@ int trace_print_lat_fmt(struct trace_seq
|
||||
else
|
||||
ret = trace_seq_putc(s, '.');
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Subject: futex: Fix bug on when a requeued RT task times out
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
|
||||
|
||||
|
@ -55,10 +55,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/rtmutex_common.h | 1 +
|
||||
2 files changed, 32 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/kernel/rtmutex.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/rtmutex.c
|
||||
+++ linux-stable/kernel/rtmutex.c
|
||||
--- a/kernel/rtmutex.c
|
||||
+++ b/kernel/rtmutex.c
|
||||
@@ -70,7 +70,8 @@ static void fixup_rt_mutex_waiters(struc
|
||||
|
||||
static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
|
||||
|
@ -69,7 +67,7 @@ Index: linux-stable/kernel/rtmutex.c
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -982,6 +983,35 @@ int rt_mutex_start_proxy_lock(struct rt_
|
||||
@@ -994,6 +995,35 @@ int rt_mutex_start_proxy_lock(struct rt_
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -105,10 +103,8 @@ Index: linux-stable/kernel/rtmutex.c
|
|||
ret = task_blocks_on_rt_mutex(lock, waiter, task, detect_deadlock);
|
||||
|
||||
if (ret && !rt_mutex_owner(lock)) {
|
||||
Index: linux-stable/kernel/rtmutex_common.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/rtmutex_common.h
|
||||
+++ linux-stable/kernel/rtmutex_common.h
|
||||
--- a/kernel/rtmutex_common.h
|
||||
+++ b/kernel/rtmutex_common.h
|
||||
@@ -104,6 +104,7 @@ static inline struct task_struct *rt_mut
|
||||
* PI-futex support (proxy locking functions, etc.):
|
||||
*/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
||||
Subject: genirq: disable irqpoll on -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Creates long latencies for no value
|
||||
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/irq/spurious.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
Index: linux-stable/kernel/irq/spurious.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/irq/spurious.c
|
||||
+++ linux-stable/kernel/irq/spurious.c
|
||||
--- a/kernel/irq/spurious.c
|
||||
+++ b/kernel/irq/spurious.c
|
||||
@@ -340,6 +340,11 @@ MODULE_PARM_DESC(noirqdebug, "Disable ir
|
||||
|
||||
static int __init irqfixup_setup(char *str)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: genirq-force-threading.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 03 Apr 2011 11:57:29 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -9,10 +9,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/irq/manage.c | 2 ++
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/interrupt.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/interrupt.h
|
||||
+++ linux-stable/include/linux/interrupt.h
|
||||
--- a/include/linux/interrupt.h
|
||||
+++ b/include/linux/interrupt.h
|
||||
@@ -383,9 +383,13 @@ static inline int disable_irq_wake(unsig
|
||||
|
||||
|
||||
|
@ -29,10 +27,8 @@ Index: linux-stable/include/linux/interrupt.h
|
|||
#endif
|
||||
|
||||
#ifndef __ARCH_SET_SOFTIRQ_PENDING
|
||||
Index: linux-stable/kernel/irq/manage.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/irq/manage.c
|
||||
+++ linux-stable/kernel/irq/manage.c
|
||||
--- a/kernel/irq/manage.c
|
||||
+++ b/kernel/irq/manage.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "internals.h"
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 18 Mar 2011 10:22:04 +0100
|
||||
Subject: genirq: Disable DEBUG_SHIRQ for rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
lib/Kconfig.debug | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/lib/Kconfig.debug
|
||||
===================================================================
|
||||
--- linux-stable.orig/lib/Kconfig.debug
|
||||
+++ linux-stable/lib/Kconfig.debug
|
||||
--- a/lib/Kconfig.debug
|
||||
+++ b/lib/Kconfig.debug
|
||||
@@ -164,7 +164,7 @@ config DEBUG_KERNEL
|
||||
|
||||
config DEBUG_SHIRQ
|
||||
|
|
|
@ -2,7 +2,7 @@ From b580b7eedc8ee3990b118003c4793291387c40ac Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 21 Jun 2013 11:38:28 +0200
|
||||
Subject: [PATCH] gpu: i915: allow the user not to do the wbinvd
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The wbinvd() renders the system with i915 unusable on RT. Using this
|
||||
expensive instruction avoids GPU trouble according to
|
||||
|
@ -18,10 +18,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
drivers/gpu/drm/i915/i915_gem.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/gpu/drm/i915/i915_gem.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/gpu/drm/i915/i915_gem.c
|
||||
+++ linux-stable/drivers/gpu/drm/i915/i915_gem.c
|
||||
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||
@@ -35,6 +35,7 @@
|
||||
#include <linux/swap.h>
|
||||
#include <linux/pci.h>
|
||||
|
@ -30,7 +28,7 @@ Index: linux-stable/drivers/gpu/drm/i915/i915_gem.c
|
|||
|
||||
static void i915_gem_object_flush_gtt_write_domain(struct drm_i915_gem_object *obj);
|
||||
static void i915_gem_object_flush_cpu_write_domain(struct drm_i915_gem_object *obj);
|
||||
@@ -2676,6 +2677,10 @@ static inline int fence_number(struct dr
|
||||
@@ -2713,6 +2714,10 @@ static inline int fence_number(struct dr
|
||||
return fence - dev_priv->fence_regs;
|
||||
}
|
||||
|
||||
|
@ -41,7 +39,7 @@ Index: linux-stable/drivers/gpu/drm/i915/i915_gem.c
|
|||
static void i915_gem_write_fence__ipi(void *data)
|
||||
{
|
||||
wbinvd();
|
||||
@@ -2699,8 +2704,16 @@ static void i915_gem_object_update_fence
|
||||
@@ -2736,8 +2741,16 @@ static void i915_gem_object_update_fence
|
||||
* on each processor in order to manually flush all memory
|
||||
* transactions before updating the fence register.
|
||||
*/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: hardirq.h: Define softirq_count() as OUL to kill build warning
|
||||
From: Yong Zhang <yong.zhang0@gmail.com>
|
||||
Date: Thu, 13 Oct 2011 17:19:09 +0800
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
kernel/lockdep.c: In function ‘print_bad_irq_dependency’:
|
||||
kernel/lockdep.c:1476:3: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 7 has type ‘unsigned int’
|
||||
|
@ -23,10 +23,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
include/linux/hardirq.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/include/linux/hardirq.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/hardirq.h
|
||||
+++ linux-stable/include/linux/hardirq.h
|
||||
--- a/include/linux/hardirq.h
|
||||
+++ b/include/linux/hardirq.h
|
||||
@@ -85,7 +85,7 @@
|
||||
# define softirq_count() (preempt_count() & SOFTIRQ_MASK)
|
||||
# define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
|
||||
From: Yong Zhang <yong.zhang0@gmail.com>
|
||||
Date: Sun, 16 Oct 2011 18:56:44 +0800
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
cpu_unplug_begin() should be called before CPU_DOWN_PREPARE, because
|
||||
at CPU_DOWN_PREPARE cpu_active is cleared and sched_domain is
|
||||
|
@ -26,10 +26,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/cpu.c | 16 +++++++---------
|
||||
1 file changed, 7 insertions(+), 9 deletions(-)
|
||||
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -411,22 +411,20 @@ static int __ref _cpu_down(unsigned int
|
||||
return -EBUSY;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: hotplug: Lightweight get online cpus
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 15 Jun 2011 12:36:06 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
get_online_cpus() is a heavy weight function which involves a global
|
||||
mutex. migrate_disable() wants a simpler construct which prevents only
|
||||
|
@ -17,10 +17,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/cpu.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
2 files changed, 131 insertions(+), 7 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/cpu.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/cpu.h
|
||||
+++ linux-stable/include/linux/cpu.h
|
||||
--- a/include/linux/cpu.h
|
||||
+++ b/include/linux/cpu.h
|
||||
@@ -1,15 +1,15 @@
|
||||
/*
|
||||
* include/linux/cpu.h - generic cpu definition
|
||||
|
@ -59,10 +57,8 @@ Index: linux-stable/include/linux/cpu.h
|
|||
#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
|
||||
/* These aren't inline functions due to a GCC bug. */
|
||||
#define register_hotcpu_notifier(nb) ({ (void)(nb); 0; })
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -63,6 +63,101 @@ static struct {
|
||||
.refcount = 0,
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: hotplug: sync_unplug: No "\n" in task name
|
||||
From: Yong Zhang <yong.zhang0@gmail.com>
|
||||
Date: Sun, 16 Oct 2011 18:56:43 +0800
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Otherwise the output will look a little odd.
|
||||
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/cpu.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -142,7 +142,7 @@ static int cpu_unplug_begin(unsigned int
|
||||
struct task_struct *tsk;
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: hotplug-use-migrate-disable.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 19:35:29 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
kernel/cpu.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -403,14 +403,13 @@ static int __ref _cpu_down(unsigned int
|
||||
cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu));
|
||||
set_cpus_allowed_ptr(current, cpumask);
|
||||
|
|
79
debian/patches/features/all/rt/hpsa-fix-warning-with-smp_processor_id-in-preemptibl.patch
vendored
Normal file
79
debian/patches/features/all/rt/hpsa-fix-warning-with-smp_processor_id-in-preemptibl.patch
vendored
Normal file
|
@ -0,0 +1,79 @@
|
|||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Fri, 26 Jul 2013 16:06:18 +0200
|
||||
Subject: [PATCH] hpsa: fix warning with smp_processor_id() in preemptible
|
||||
section
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
On a 3.6-rt (real-time patch) kernel we are seeing the following BUG
|
||||
However, it appears to be relevant for non-realtime (mainline) as well.
|
||||
|
||||
|hpsa 0000:03:00.0: hpsa0: <0x323a> at IRQ 67 using DAC
|
||||
|scsi0 : hpsa
|
||||
|BUG: using smp_processor_id() in preemptible [0000000000000000] code: kworker/u:0/6
|
||||
|caller is enqueue_cmd_and_start_io+0x5a/0x100 [hpsa]
|
||||
|Pid: 6, comm: kworker/u:0 Not tainted 3.6.11.5-rt37.52.el6rt.x86_64.debug #1
|
||||
|Call Trace:
|
||||
| [<ffffffff812abe83>] debug_smp_processor_id+0x123/0x150
|
||||
| [<ffffffffa009043a>] enqueue_cmd_and_start_io+0x5a/0x100 [hpsa]
|
||||
| [<ffffffffa00905cb>] hpsa_scsi_do_simple_cmd_core+0xeb/0x110 [hpsa]
|
||||
| [<ffffffff812b09c8>] ? swiotlb_dma_mapping_error+0x18/0x30
|
||||
| [<ffffffff812b09c8>] ? swiotlb_dma_mapping_error+0x18/0x30
|
||||
| [<ffffffffa0090701>] hpsa_scsi_do_simple_cmd_with_retry+0x91/0x280 [hpsa]
|
||||
| [<ffffffffa0093558>] hpsa_scsi_do_report_luns.clone.2+0xd8/0x130 [hpsa]
|
||||
| [<ffffffffa00935ea>] hpsa_gather_lun_info.clone.3+0x3a/0x1a0 [hpsa]
|
||||
| [<ffffffffa00963df>] hpsa_update_scsi_devices+0x11f/0x4f0 [hpsa]
|
||||
| [<ffffffff81592019>] ? sub_preempt_count+0xa9/0xe0
|
||||
| [<ffffffffa00968ad>] hpsa_scan_start+0xfd/0x150 [hpsa]
|
||||
| [<ffffffff8158cba8>] ? rt_spin_lock_slowunlock+0x78/0x90
|
||||
| [<ffffffff813b04d7>] do_scsi_scan_host+0x37/0xa0
|
||||
| [<ffffffff813b05da>] do_scan_async+0x1a/0x30
|
||||
| [<ffffffff8107c4ab>] async_run_entry_fn+0x9b/0x1d0
|
||||
| [<ffffffff8106ae92>] process_one_work+0x1f2/0x620
|
||||
| [<ffffffff8106ae20>] ? process_one_work+0x180/0x620
|
||||
| [<ffffffff8106d4fe>] ? worker_thread+0x5e/0x3a0
|
||||
| [<ffffffff8107c410>] ? async_schedule+0x20/0x20
|
||||
| [<ffffffff8106d5d3>] worker_thread+0x133/0x3a0
|
||||
| [<ffffffff8106d4a0>] ? manage_workers+0x190/0x190
|
||||
| [<ffffffff81073236>] kthread+0xa6/0xb0
|
||||
| [<ffffffff815970a4>] kernel_thread_helper+0x4/0x10
|
||||
| [<ffffffff81082a7c>] ? finish_task_switch+0x8c/0x110
|
||||
| [<ffffffff8158e44b>] ? _raw_spin_unlock_irq+0x3b/0x70
|
||||
| [<ffffffff8158e85d>] ? retint_restore_args+0xe/0xe
|
||||
| [<ffffffff81073190>] ? kthreadd+0x1e0/0x1e0
|
||||
| [<ffffffff815970a0>] ? gs_change+0xb/0xb
|
||||
|
||||
-------------------
|
||||
|
||||
This is caused by
|
||||
enqueue_cmd_and_start_io()->
|
||||
set_performant_mode()->
|
||||
smp_processor_id()
|
||||
Which if you have debugging enabled calls debug_processor_id() and triggers the warning.
|
||||
|
||||
The code here is
|
||||
c->Header.ReplyQueue = smp_processor_id() % h->nreply_queues;
|
||||
|
||||
Since it is not critical that the code complete on the same processor,
|
||||
but the cpu is a hint used in generating the ReplyQueue and will still work if
|
||||
the cpu migrates or is preempted, it is safe to use the raw_smp_processor_id()
|
||||
to surpress the false positve warning.
|
||||
|
||||
Cc: stable-rt@vger.kernel.org
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
Acked-by: Stephen <scameron@beardog.cce.hp.com>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/scsi/hpsa.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/scsi/hpsa.c
|
||||
+++ b/drivers/scsi/hpsa.c
|
||||
@@ -583,7 +583,7 @@ static void set_performant_mode(struct c
|
||||
c->busaddr |= 1 | (h->blockFetchTable[c->Header.SGList] << 1);
|
||||
if (likely(h->msix_vector))
|
||||
c->Header.ReplyQueue =
|
||||
- smp_processor_id() % h->nreply_queues;
|
||||
+ raw_smp_processor_id() % h->nreply_queues;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 3 Jul 2009 08:44:31 -0500
|
||||
Subject: hrtimer: fixup hrtimer callback changes for preempt-rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
In preempt-rt we can not call the callbacks which take sleeping locks
|
||||
from the timer interrupt context.
|
||||
|
@ -21,10 +21,8 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|||
kernel/watchdog.c | 1
|
||||
6 files changed, 195 insertions(+), 28 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/hrtimer.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/hrtimer.h
|
||||
+++ linux-stable/include/linux/hrtimer.h
|
||||
--- a/include/linux/hrtimer.h
|
||||
+++ b/include/linux/hrtimer.h
|
||||
@@ -111,6 +111,8 @@ struct hrtimer {
|
||||
enum hrtimer_restart (*function)(struct hrtimer *);
|
||||
struct hrtimer_clock_base *base;
|
||||
|
@ -42,10 +40,8 @@ Index: linux-stable/include/linux/hrtimer.h
|
|||
ktime_t resolution;
|
||||
ktime_t (*get_time)(void);
|
||||
ktime_t softirq_time;
|
||||
Index: linux-stable/kernel/hrtimer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/hrtimer.c
|
||||
+++ linux-stable/kernel/hrtimer.c
|
||||
--- a/kernel/hrtimer.c
|
||||
+++ b/kernel/hrtimer.c
|
||||
@@ -607,8 +607,7 @@ static int hrtimer_reprogram(struct hrti
|
||||
* When the callback is running, we do not reprogram the clock event
|
||||
* device. The timer callback is either running on a different CPU or
|
||||
|
@ -415,10 +411,8 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
}
|
||||
|
||||
/**
|
||||
Index: linux-stable/kernel/sched/core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/core.c
|
||||
+++ linux-stable/kernel/sched/core.c
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -489,6 +489,7 @@ static void init_rq_hrtick(struct rq *rq
|
||||
|
||||
hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||
|
@ -427,10 +421,8 @@ Index: linux-stable/kernel/sched/core.c
|
|||
}
|
||||
#else /* CONFIG_SCHED_HRTICK */
|
||||
static inline void hrtick_clear(struct rq *rq)
|
||||
Index: linux-stable/kernel/sched/rt.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/rt.c
|
||||
+++ linux-stable/kernel/sched/rt.c
|
||||
--- a/kernel/sched/rt.c
|
||||
+++ b/kernel/sched/rt.c
|
||||
@@ -43,6 +43,7 @@ void init_rt_bandwidth(struct rt_bandwid
|
||||
|
||||
hrtimer_init(&rt_b->rt_period_timer,
|
||||
|
@ -439,11 +431,9 @@ Index: linux-stable/kernel/sched/rt.c
|
|||
rt_b->rt_period_timer.function = sched_rt_period_timer;
|
||||
}
|
||||
|
||||
Index: linux-stable/kernel/time/tick-sched.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/time/tick-sched.c
|
||||
+++ linux-stable/kernel/time/tick-sched.c
|
||||
@@ -1133,6 +1133,7 @@ void tick_setup_sched_timer(void)
|
||||
--- a/kernel/time/tick-sched.c
|
||||
+++ b/kernel/time/tick-sched.c
|
||||
@@ -1128,6 +1128,7 @@ void tick_setup_sched_timer(void)
|
||||
* Emulate tick processing via per-CPU hrtimers:
|
||||
*/
|
||||
hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
||||
|
@ -451,10 +441,8 @@ Index: linux-stable/kernel/time/tick-sched.c
|
|||
ts->sched_timer.function = tick_sched_timer;
|
||||
|
||||
/* Get the next period (per cpu) */
|
||||
Index: linux-stable/kernel/watchdog.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/watchdog.c
|
||||
+++ linux-stable/kernel/watchdog.c
|
||||
--- a/kernel/watchdog.c
|
||||
+++ b/kernel/watchdog.c
|
||||
@@ -357,6 +357,7 @@ static void watchdog_enable(unsigned int
|
||||
/* kick off the timer for the hardlockup detector */
|
||||
hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: hrtimer: Raise softirq if hrtimer irq stalled
|
||||
From: Watanabe <shunsuke.watanabe@tel.com>
|
||||
Date: Sun, 28 Oct 2012 11:13:44 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
When the hrtimer stall detection hits the softirq is not raised.
|
||||
|
||||
|
@ -11,11 +11,9 @@ Cc: stable-rt@vger.kernel.org
|
|||
kernel/hrtimer.c | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: linux-stable/kernel/hrtimer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/hrtimer.c
|
||||
+++ linux-stable/kernel/hrtimer.c
|
||||
@@ -1551,11 +1551,7 @@ retry:
|
||||
--- a/kernel/hrtimer.c
|
||||
+++ b/kernel/hrtimer.c
|
||||
@@ -1556,11 +1556,7 @@ retry:
|
||||
if (expires_next.tv64 == KTIME_MAX ||
|
||||
!tick_program_event(expires_next, 0)) {
|
||||
cpu_base->hang_detected = 0;
|
||||
|
@ -28,7 +26,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -1599,6 +1595,9 @@ retry:
|
||||
@@ -1604,6 +1600,9 @@ retry:
|
||||
tick_program_event(expires_next, 1);
|
||||
printk_once(KERN_WARNING "hrtimer: interrupt took %llu ns\n",
|
||||
ktime_to_ns(delta));
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:34 -0500
|
||||
Subject: hrtimers: prepare full preemption
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Make cancellation of a running callback in softirq context safe
|
||||
against preemption.
|
||||
|
@ -16,10 +16,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/posix-timers.c | 33 +++++++++++++++++++++++++++++++++
|
||||
4 files changed, 76 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/include/linux/hrtimer.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/hrtimer.h
|
||||
+++ linux-stable/include/linux/hrtimer.h
|
||||
--- a/include/linux/hrtimer.h
|
||||
+++ b/include/linux/hrtimer.h
|
||||
@@ -193,6 +193,9 @@ struct hrtimer_cpu_base {
|
||||
unsigned long nr_hangs;
|
||||
ktime_t max_hang_time;
|
||||
|
@ -44,11 +42,9 @@ Index: linux-stable/include/linux/hrtimer.h
|
|||
/* Query timers: */
|
||||
extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
|
||||
extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
|
||||
Index: linux-stable/kernel/hrtimer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/hrtimer.c
|
||||
+++ linux-stable/kernel/hrtimer.c
|
||||
@@ -863,6 +863,32 @@ u64 hrtimer_forward(struct hrtimer *time
|
||||
--- a/kernel/hrtimer.c
|
||||
+++ b/kernel/hrtimer.c
|
||||
@@ -868,6 +868,32 @@ u64 hrtimer_forward(struct hrtimer *time
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hrtimer_forward);
|
||||
|
||||
|
@ -81,7 +77,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
/*
|
||||
* enqueue_hrtimer - internal function to (re)start a timer
|
||||
*
|
||||
@@ -1115,7 +1141,7 @@ int hrtimer_cancel(struct hrtimer *timer
|
||||
@@ -1120,7 +1146,7 @@ int hrtimer_cancel(struct hrtimer *timer
|
||||
|
||||
if (ret >= 0)
|
||||
return ret;
|
||||
|
@ -90,7 +86,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hrtimer_cancel);
|
||||
@@ -1532,6 +1558,8 @@ void hrtimer_run_queues(void)
|
||||
@@ -1530,6 +1556,8 @@ void hrtimer_run_queues(void)
|
||||
}
|
||||
raw_spin_unlock(&cpu_base->lock);
|
||||
}
|
||||
|
@ -99,7 +95,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -1692,6 +1720,9 @@ static void __cpuinit init_hrtimers_cpu(
|
||||
@@ -1690,6 +1718,9 @@ static void __cpuinit init_hrtimers_cpu(
|
||||
}
|
||||
|
||||
hrtimer_init_hres(cpu_base);
|
||||
|
@ -109,10 +105,8 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
}
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
Index: linux-stable/kernel/itimer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/itimer.c
|
||||
+++ linux-stable/kernel/itimer.c
|
||||
--- a/kernel/itimer.c
|
||||
+++ b/kernel/itimer.c
|
||||
@@ -213,6 +213,7 @@ again:
|
||||
/* We are sharing ->siglock with it_real_fn() */
|
||||
if (hrtimer_try_to_cancel(timer) < 0) {
|
||||
|
@ -121,10 +115,8 @@ Index: linux-stable/kernel/itimer.c
|
|||
goto again;
|
||||
}
|
||||
expires = timeval_to_ktime(value->it_value);
|
||||
Index: linux-stable/kernel/posix-timers.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/posix-timers.c
|
||||
+++ linux-stable/kernel/posix-timers.c
|
||||
--- a/kernel/posix-timers.c
|
||||
+++ b/kernel/posix-timers.c
|
||||
@@ -818,6 +818,20 @@ SYSCALL_DEFINE1(timer_getoverrun, timer_
|
||||
return overrun;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: hwlatdetect.patch
|
||||
From: Carsten Emde <C.Emde@osadl.org>
|
||||
Date: Tue, 19 Jul 2011 13:53:12 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Jon Masters developed this wonderful SMI detector. For details please
|
||||
consult Documentation/hwlat_detector.txt. It could be ported to Linux
|
||||
|
@ -16,10 +16,8 @@ Signed-off-by: Carsten Emde <C.Emde@osadl.org>
|
|||
drivers/misc/hwlat_detector.c | 1212 +++++++++++++++++++++++++++++++++++++++
|
||||
4 files changed, 1306 insertions(+)
|
||||
|
||||
Index: linux-stable/Documentation/hwlat_detector.txt
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/Documentation/hwlat_detector.txt
|
||||
+++ b/Documentation/hwlat_detector.txt
|
||||
@@ -0,0 +1,64 @@
|
||||
+Introduction:
|
||||
+-------------
|
||||
|
@ -85,10 +83,8 @@ Index: linux-stable/Documentation/hwlat_detector.txt
|
|||
+observe any latencies that exceed the threshold (initially 100 usecs),
|
||||
+then we write to a global sample ring buffer of 8K samples, which is
|
||||
+consumed by reading from the "sample" (pipe) debugfs file interface.
|
||||
Index: linux-stable/drivers/misc/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/misc/Kconfig
|
||||
+++ linux-stable/drivers/misc/Kconfig
|
||||
--- a/drivers/misc/Kconfig
|
||||
+++ b/drivers/misc/Kconfig
|
||||
@@ -130,6 +130,35 @@ config IBM_ASM
|
||||
for information on the specific driver level and support statement
|
||||
for your IBM server.
|
||||
|
@ -125,19 +121,15 @@ Index: linux-stable/drivers/misc/Kconfig
|
|||
config PHANTOM
|
||||
tristate "Sensable PHANToM (PCI)"
|
||||
depends on PCI
|
||||
Index: linux-stable/drivers/misc/Makefile
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/misc/Makefile
|
||||
+++ linux-stable/drivers/misc/Makefile
|
||||
--- a/drivers/misc/Makefile
|
||||
+++ b/drivers/misc/Makefile
|
||||
@@ -53,3 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/
|
||||
obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/
|
||||
obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o
|
||||
obj-$(CONFIG_SRAM) += sram.o
|
||||
+obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o
|
||||
Index: linux-stable/drivers/misc/hwlat_detector.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/drivers/misc/hwlat_detector.c
|
||||
+++ b/drivers/misc/hwlat_detector.c
|
||||
@@ -0,0 +1,1212 @@
|
||||
+/*
|
||||
+ * hwlat_detector.c - A simple Hardware Latency detector.
|
||||
|
|
|
@ -2,7 +2,7 @@ From 5145351047b216cca13aaca99f939a9a594c6c4d Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 21 Mar 2013 11:35:49 +0100
|
||||
Subject: [PATCH 2/3] i2c/omap: drop the lock hard irq context
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The lock is taken while reading two registers. On RT the first lock is
|
||||
taken in hard irq where it might sleep and in the threaded irq.
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
drivers/i2c/busses/i2c-omap.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/i2c/busses/i2c-omap.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/i2c/busses/i2c-omap.c
|
||||
+++ linux-stable/drivers/i2c/busses/i2c-omap.c
|
||||
--- a/drivers/i2c/busses/i2c-omap.c
|
||||
+++ b/drivers/i2c/busses/i2c-omap.c
|
||||
@@ -881,15 +881,12 @@ omap_i2c_isr(int irq, void *dev_id)
|
||||
u16 mask;
|
||||
u16 stat;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Subject: gpu/i915: don't open code these things
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The opencode part is gone in 1f83fee0 ("drm/i915: clear up wedged transitions")
|
||||
the owner check is still there.
|
||||
|
@ -10,11 +10,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
drivers/gpu/drm/i915/i915_gem.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/drivers/gpu/drm/i915/i915_gem.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/gpu/drm/i915/i915_gem.c
|
||||
+++ linux-stable/drivers/gpu/drm/i915/i915_gem.c
|
||||
@@ -4412,7 +4412,7 @@ static bool mutex_is_locked_by(struct mu
|
||||
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||
@@ -4449,7 +4449,7 @@ static bool mutex_is_locked_by(struct mu
|
||||
if (!mutex_is_locked(mutex))
|
||||
return false;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
||||
Subject: ide: Do not disable interrupts for PREEMPT-RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Use the local_irq_*_nort variants.
|
||||
|
||||
|
@ -18,10 +18,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/ide/ide-taskfile.c | 6 +++---
|
||||
7 files changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/ide/alim15x3.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/alim15x3.c
|
||||
+++ linux-stable/drivers/ide/alim15x3.c
|
||||
--- a/drivers/ide/alim15x3.c
|
||||
+++ b/drivers/ide/alim15x3.c
|
||||
@@ -234,7 +234,7 @@ static int init_chipset_ali15x3(struct p
|
||||
|
||||
isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
|
||||
|
@ -40,10 +38,8 @@ Index: linux-stable/drivers/ide/alim15x3.c
|
|||
return 0;
|
||||
}
|
||||
|
||||
Index: linux-stable/drivers/ide/hpt366.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/hpt366.c
|
||||
+++ linux-stable/drivers/ide/hpt366.c
|
||||
--- a/drivers/ide/hpt366.c
|
||||
+++ b/drivers/ide/hpt366.c
|
||||
@@ -1241,7 +1241,7 @@ static int init_dma_hpt366(ide_hwif_t *h
|
||||
|
||||
dma_old = inb(base + 2);
|
||||
|
@ -62,10 +58,8 @@ Index: linux-stable/drivers/ide/hpt366.c
|
|||
|
||||
printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n",
|
||||
hwif->name, base, base + 7);
|
||||
Index: linux-stable/drivers/ide/ide-io-std.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/ide-io-std.c
|
||||
+++ linux-stable/drivers/ide/ide-io-std.c
|
||||
--- a/drivers/ide/ide-io-std.c
|
||||
+++ b/drivers/ide/ide-io-std.c
|
||||
@@ -175,7 +175,7 @@ void ide_input_data(ide_drive_t *drive,
|
||||
unsigned long uninitialized_var(flags);
|
||||
|
||||
|
@ -102,10 +96,8 @@ Index: linux-stable/drivers/ide/ide-io-std.c
|
|||
|
||||
if (((len + 1) & 3) < 2)
|
||||
return;
|
||||
Index: linux-stable/drivers/ide/ide-io.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/ide-io.c
|
||||
+++ linux-stable/drivers/ide/ide-io.c
|
||||
--- a/drivers/ide/ide-io.c
|
||||
+++ b/drivers/ide/ide-io.c
|
||||
@@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long dat
|
||||
/* disable_irq_nosync ?? */
|
||||
disable_irq(hwif->irq);
|
||||
|
@ -115,10 +107,8 @@ Index: linux-stable/drivers/ide/ide-io.c
|
|||
if (hwif->polling) {
|
||||
startstop = handler(drive);
|
||||
} else if (drive_is_ready(drive)) {
|
||||
Index: linux-stable/drivers/ide/ide-iops.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/ide-iops.c
|
||||
+++ linux-stable/drivers/ide/ide-iops.c
|
||||
--- a/drivers/ide/ide-iops.c
|
||||
+++ b/drivers/ide/ide-iops.c
|
||||
@@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive,
|
||||
if ((stat & ATA_BUSY) == 0)
|
||||
break;
|
||||
|
@ -134,10 +124,8 @@ Index: linux-stable/drivers/ide/ide-iops.c
|
|||
}
|
||||
/*
|
||||
* Allow status to settle, then read it again.
|
||||
Index: linux-stable/drivers/ide/ide-probe.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/ide-probe.c
|
||||
+++ linux-stable/drivers/ide/ide-probe.c
|
||||
--- a/drivers/ide/ide-probe.c
|
||||
+++ b/drivers/ide/ide-probe.c
|
||||
@@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *dri
|
||||
int bswap = 1;
|
||||
|
||||
|
@ -151,10 +139,8 @@ Index: linux-stable/drivers/ide/ide-probe.c
|
|||
|
||||
drive->dev_flags |= IDE_DFLAG_ID_READ;
|
||||
#ifdef DEBUG
|
||||
Index: linux-stable/drivers/ide/ide-taskfile.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/ide/ide-taskfile.c
|
||||
+++ linux-stable/drivers/ide/ide-taskfile.c
|
||||
--- a/drivers/ide/ide-taskfile.c
|
||||
+++ b/drivers/ide/ide-taskfile.c
|
||||
@@ -251,7 +251,7 @@ void ide_pio_bytes(ide_drive_t *drive, s
|
||||
|
||||
page_is_high = PageHighMem(page);
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
Subject: sched: Init idle->on_rq in init_idle()
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 09 Jan 2013 23:03:29 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
kernel/sched/core.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: linux-stable/kernel/sched/core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/core.c
|
||||
+++ linux-stable/kernel/sched/core.c
|
||||
@@ -5034,6 +5034,7 @@ void __cpuinit init_idle(struct task_str
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -4745,6 +4745,7 @@ void __cpuinit init_idle(struct task_str
|
||||
rcu_read_unlock();
|
||||
|
||||
rq->curr = rq->idle = idle;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Subject: idr: Use local lock instead of preempt enable/disable
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
We need to protect the per cpu variable and prevent migration.
|
||||
|
||||
|
@ -10,10 +10,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
lib/idr.c | 37 ++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 38 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/idr.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/idr.h
|
||||
+++ linux-stable/include/linux/idr.h
|
||||
--- a/include/linux/idr.h
|
||||
+++ b/include/linux/idr.h
|
||||
@@ -92,10 +92,14 @@ void idr_init(struct idr *idp);
|
||||
* Each idr_preload() should be matched with an invocation of this
|
||||
* function. See idr_preload() for details.
|
||||
|
@ -29,10 +27,8 @@ Index: linux-stable/include/linux/idr.h
|
|||
|
||||
/**
|
||||
* idr_find - return pointer for given id
|
||||
Index: linux-stable/lib/idr.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/lib/idr.c
|
||||
+++ linux-stable/lib/idr.c
|
||||
--- a/lib/idr.c
|
||||
+++ b/lib/idr.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/percpu.h>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sven-Thorsten Dietrich <sdietrich@novell.com>
|
||||
Date: Fri, 3 Jul 2009 08:30:35 -0500
|
||||
Subject: infiniband: Mellanox IB driver patch use _nort() primitives
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
|
||||
Kernel.
|
||||
|
@ -19,10 +19,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||||
+++ linux-stable/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||||
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||||
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
|
||||
@@ -783,7 +783,7 @@ void ipoib_mcast_restart_task(struct wor
|
||||
|
||||
ipoib_mcast_stop_thread(dev, 0);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
||||
Subject: input: gameport: Do not disable interrupts on PREEMPT_RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Use the _nort() primitives.
|
||||
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
drivers/input/gameport/gameport.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/input/gameport/gameport.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/input/gameport/gameport.c
|
||||
+++ linux-stable/drivers/input/gameport/gameport.c
|
||||
--- a/drivers/input/gameport/gameport.c
|
||||
+++ b/drivers/input/gameport/gameport.c
|
||||
@@ -87,12 +87,12 @@ static int gameport_measure_speed(struct
|
||||
tx = 1 << 30;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:30:12 -0500
|
||||
Subject: ipc: Make the ipc code -rt aware
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
RT serializes the code with the (rt)spinlock but keeps preemption
|
||||
enabled. Some parts of the code need to be atomic nevertheless.
|
||||
|
@ -16,10 +16,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
ipc/msg.c | 16 ++++++++++++++++
|
||||
2 files changed, 21 insertions(+)
|
||||
|
||||
Index: linux-stable/ipc/mqueue.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/ipc/mqueue.c
|
||||
+++ linux-stable/ipc/mqueue.c
|
||||
--- a/ipc/mqueue.c
|
||||
+++ b/ipc/mqueue.c
|
||||
@@ -921,12 +921,17 @@ static inline void pipelined_send(struct
|
||||
struct msg_msg *message,
|
||||
struct ext_wait_queue *receiver)
|
||||
|
@ -38,10 +36,8 @@ Index: linux-stable/ipc/mqueue.c
|
|||
}
|
||||
|
||||
/* pipelined_receive() - if there is task waiting in sys_mq_timedsend()
|
||||
Index: linux-stable/ipc/msg.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/ipc/msg.c
|
||||
+++ linux-stable/ipc/msg.c
|
||||
--- a/ipc/msg.c
|
||||
+++ b/ipc/msg.c
|
||||
@@ -252,10 +252,18 @@ static void expunge_all(struct msg_queue
|
||||
struct msg_receiver *msr, *t;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: ipc/mqueue: Add a critical section to avoid a deadlock
|
||||
From: KOBAYASHI Yoshitake <yoshitake.kobayashi@toshiba.co.jp>
|
||||
Date: Sat, 23 Jul 2011 11:57:36 +0900
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
(Repost for v3.0-rt1 and changed the distination addreses)
|
||||
I have tested the following patch on v3.0-rt1 with PREEMPT_RT_FULL.
|
||||
|
@ -35,10 +35,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
ipc/mqueue.c | 19 ++++++++++++-------
|
||||
1 file changed, 12 insertions(+), 7 deletions(-)
|
||||
|
||||
Index: linux-stable/ipc/mqueue.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/ipc/mqueue.c
|
||||
+++ linux-stable/ipc/mqueue.c
|
||||
--- a/ipc/mqueue.c
|
||||
+++ b/ipc/mqueue.c
|
||||
@@ -945,13 +945,18 @@ static inline void pipelined_receive(str
|
||||
wake_up_interruptible(&info->wait_q);
|
||||
return;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: ipc/sem: Rework semaphore wakeups
|
||||
From: Peter Zijlstra <peterz@infradead.org>
|
||||
Date: Wed, 14 Sep 2011 11:57:04 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Subject: ipc/sem: Rework semaphore wakeups
|
||||
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
|
@ -32,10 +32,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
ipc/sem.c | 24 +++++++++++++++++-------
|
||||
1 file changed, 17 insertions(+), 7 deletions(-)
|
||||
|
||||
Index: linux-stable/ipc/sem.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/ipc/sem.c
|
||||
+++ linux-stable/ipc/sem.c
|
||||
--- a/ipc/sem.c
|
||||
+++ b/ipc/sem.c
|
||||
@@ -155,7 +155,7 @@ static int sysvipc_sem_proc_show(struct
|
||||
* sem_array.sem_pending{,last},
|
||||
* sem_array.sem_undo: sem_lock() for read/write
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: genirq: Allow disabling of softirq processing in irq thread context
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 31 Jan 2012 13:01:27 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
The processing of softirqs in irq thread context is a performance gain
|
||||
for the non-rt workloads of a system, but it's counterproductive for
|
||||
|
@ -19,10 +19,8 @@ Cc: stable-rt@vger.kernel.org
|
|||
kernel/softirq.c | 7 +++++++
|
||||
5 files changed, 37 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/interrupt.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/interrupt.h
|
||||
+++ linux-stable/include/linux/interrupt.h
|
||||
--- a/include/linux/interrupt.h
|
||||
+++ b/include/linux/interrupt.h
|
||||
@@ -58,6 +58,7 @@
|
||||
* IRQF_NO_THREAD - Interrupt cannot be threaded
|
||||
* IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
|
||||
|
@ -39,10 +37,8 @@ Index: linux-stable/include/linux/interrupt.h
|
|||
|
||||
#define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD)
|
||||
|
||||
Index: linux-stable/include/linux/irq.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/irq.h
|
||||
+++ linux-stable/include/linux/irq.h
|
||||
--- a/include/linux/irq.h
|
||||
+++ b/include/linux/irq.h
|
||||
@@ -70,6 +70,7 @@ typedef void (*irq_preflow_handler_t)(st
|
||||
* IRQ_MOVE_PCNTXT - Interrupt can be migrated from process context
|
||||
* IRQ_NESTED_TRHEAD - Interrupt nests into another thread
|
||||
|
@ -67,10 +63,8 @@ Index: linux-stable/include/linux/irq.h
|
|||
|
||||
#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
|
||||
|
||||
Index: linux-stable/kernel/irq/manage.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/irq/manage.c
|
||||
+++ linux-stable/kernel/irq/manage.c
|
||||
--- a/kernel/irq/manage.c
|
||||
+++ b/kernel/irq/manage.c
|
||||
@@ -783,7 +783,15 @@ irq_forced_thread_fn(struct irq_desc *de
|
||||
local_bh_disable();
|
||||
ret = action->thread_fn(action->irq, action->dev_id);
|
||||
|
@ -98,10 +92,8 @@ Index: linux-stable/kernel/irq/manage.c
|
|||
/* Set default affinity mask once everything is setup */
|
||||
setup_affinity(irq, desc, mask);
|
||||
|
||||
Index: linux-stable/kernel/irq/settings.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/irq/settings.h
|
||||
+++ linux-stable/kernel/irq/settings.h
|
||||
--- a/kernel/irq/settings.h
|
||||
+++ b/kernel/irq/settings.h
|
||||
@@ -14,6 +14,7 @@ enum {
|
||||
_IRQ_NO_BALANCING = IRQ_NO_BALANCING,
|
||||
_IRQ_NESTED_THREAD = IRQ_NESTED_THREAD,
|
||||
|
@ -135,10 +127,8 @@ Index: linux-stable/kernel/irq/settings.h
|
|||
static inline bool irq_settings_is_per_cpu(struct irq_desc *desc)
|
||||
{
|
||||
return desc->status_use_accessors & _IRQ_PER_CPU;
|
||||
Index: linux-stable/kernel/softirq.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/softirq.c
|
||||
+++ linux-stable/kernel/softirq.c
|
||||
--- a/kernel/softirq.c
|
||||
+++ b/kernel/softirq.c
|
||||
@@ -425,6 +425,13 @@ void local_bh_enable_ip(unsigned long ip
|
||||
}
|
||||
EXPORT_SYMBOL(local_bh_enable_ip);
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: jump-label-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 13 Jul 2011 11:03:16 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
include/linux/jump_label.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/include/linux/jump_label.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/jump_label.h
|
||||
+++ linux-stable/include/linux/jump_label.h
|
||||
--- a/include/linux/jump_label.h
|
||||
+++ b/include/linux/jump_label.h
|
||||
@@ -50,7 +50,8 @@
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: kconfig-disable-a-few-options-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 24 Jul 2011 12:11:43 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Disable stuff which is known to have issues on RT
|
||||
|
||||
|
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
mm/Kconfig | 2 +-
|
||||
3 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/arch/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/arch/Kconfig
|
||||
+++ linux-stable/arch/Kconfig
|
||||
--- a/arch/Kconfig
|
||||
+++ b/arch/Kconfig
|
||||
@@ -6,6 +6,7 @@ config OPROFILE
|
||||
tristate "OProfile system profiling"
|
||||
depends on PROFILING
|
||||
|
@ -24,10 +22,8 @@ Index: linux-stable/arch/Kconfig
|
|||
select RING_BUFFER
|
||||
select RING_BUFFER_ALLOW_SWAP
|
||||
help
|
||||
Index: linux-stable/drivers/net/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/net/Kconfig
|
||||
+++ linux-stable/drivers/net/Kconfig
|
||||
--- a/drivers/net/Kconfig
|
||||
+++ b/drivers/net/Kconfig
|
||||
@@ -164,6 +164,7 @@ config VXLAN
|
||||
|
||||
config NETCONSOLE
|
||||
|
@ -36,10 +32,8 @@ Index: linux-stable/drivers/net/Kconfig
|
|||
---help---
|
||||
If you want to log kernel messages over the network, enable this.
|
||||
See <file:Documentation/networking/netconsole.txt> for details.
|
||||
Index: linux-stable/mm/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/mm/Kconfig
|
||||
+++ linux-stable/mm/Kconfig
|
||||
--- a/mm/Kconfig
|
||||
+++ b/mm/Kconfig
|
||||
@@ -384,7 +384,7 @@ config NOMMU_INITIAL_TRIM_EXCESS
|
||||
|
||||
config TRANSPARENT_HUGEPAGE
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: kconfig-preempt-rt-full.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 29 Jun 2011 14:58:57 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -10,22 +10,18 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
scripts/mkcompile_h | 4 +++-
|
||||
3 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/init/Makefile
|
||||
===================================================================
|
||||
--- linux-stable.orig/init/Makefile
|
||||
+++ linux-stable/init/Makefile
|
||||
--- a/init/Makefile
|
||||
+++ b/init/Makefile
|
||||
@@ -33,4 +33,4 @@ silent_chk_compile.h = :
|
||||
include/generated/compile.h: FORCE
|
||||
@$($(quiet)chk_compile.h)
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
|
||||
- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
|
||||
+ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
|
||||
Index: linux-stable/kernel/Kconfig.preempt
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/Kconfig.preempt
|
||||
+++ linux-stable/kernel/Kconfig.preempt
|
||||
--- a/kernel/Kconfig.preempt
|
||||
+++ b/kernel/Kconfig.preempt
|
||||
@@ -73,6 +73,14 @@ config PREEMPT_RTB
|
||||
enables changes which are preliminary for the full preemptiple
|
||||
enables changes which are preliminary for the full preemptible
|
||||
RT kernel.
|
||||
|
||||
+config PREEMPT_RT_FULL
|
||||
|
@ -39,10 +35,8 @@ Index: linux-stable/kernel/Kconfig.preempt
|
|||
endchoice
|
||||
|
||||
config PREEMPT_COUNT
|
||||
Index: linux-stable/scripts/mkcompile_h
|
||||
===================================================================
|
||||
--- linux-stable.orig/scripts/mkcompile_h
|
||||
+++ linux-stable/scripts/mkcompile_h
|
||||
--- a/scripts/mkcompile_h
|
||||
+++ b/scripts/mkcompile_h
|
||||
@@ -4,7 +4,8 @@ TARGET=$1
|
||||
ARCH=$2
|
||||
SMP=$3
|
||||
|
|
|
@ -3,7 +3,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Fri, 7 Jun 2013 22:37:06 +0200
|
||||
Subject: [PATCH] kernel/cpu: fix cpu down problem if kthread's cpu is
|
||||
going down
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
If kthread is pinned to CPUx and CPUx is going down then we get into
|
||||
trouble:
|
||||
|
@ -27,10 +27,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
kernel/cpu.c | 16 ++++++++++++++--
|
||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -83,6 +83,7 @@ struct hotplug_pcp {
|
||||
int refcount;
|
||||
int grab_lock;
|
||||
|
|
|
@ -2,7 +2,7 @@ From 4c6df3d78817c20a147c0291f6600d002c0910d3 Mon Sep 17 00:00:00 2001
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 14 Jun 2013 17:16:35 +0200
|
||||
Subject: [PATCH] kernel/hotplug: restore original cpu mask oncpu/down
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
If a task which is allowed to run only on CPU X puts CPU Y down then it
|
||||
will be allowed on all CPUs but the on CPU Y after it comes back from
|
||||
|
@ -15,10 +15,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
kernel/cpu.c | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/kernel/cpu.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/cpu.c
|
||||
+++ linux-stable/kernel/cpu.c
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -568,6 +568,7 @@ static int __ref _cpu_down(unsigned int
|
||||
.hcpu = hcpu,
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Jason Wessel <jason.wessel@windriver.com>
|
||||
Date: Thu, 28 Jul 2011 12:42:23 -0500
|
||||
Subject: kgdb/serial: Short term workaround
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
On 07/27/2011 04:37 PM, Thomas Gleixner wrote:
|
||||
> - KGDB (not yet disabled) is reportedly unusable on -rt right now due
|
||||
|
@ -24,10 +24,8 @@ Jason.
|
|||
kernel/debug/kdb/kdb_io.c | 6 ++----
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/tty/serial/8250/8250_core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/tty/serial/8250/8250_core.c
|
||||
+++ linux-stable/drivers/tty/serial/8250/8250_core.c
|
||||
--- a/drivers/tty/serial/8250/8250_core.c
|
||||
+++ b/drivers/tty/serial/8250/8250_core.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <linux/nmi.h>
|
||||
#include <linux/mutex.h>
|
||||
|
@ -45,10 +43,8 @@ Index: linux-stable/drivers/tty/serial/8250/8250_core.c
|
|||
locked = spin_trylock_irqsave(&port->lock, flags);
|
||||
else
|
||||
spin_lock_irqsave(&port->lock, flags);
|
||||
Index: linux-stable/include/linux/kdb.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/kdb.h
|
||||
+++ linux-stable/include/linux/kdb.h
|
||||
--- a/include/linux/kdb.h
|
||||
+++ b/include/linux/kdb.h
|
||||
@@ -115,7 +115,7 @@ extern int kdb_trap_printk;
|
||||
extern __printf(1, 0) int vkdb_printf(const char *fmt, va_list args);
|
||||
extern __printf(1, 2) int kdb_printf(const char *, ...);
|
||||
|
@ -66,10 +62,8 @@ Index: linux-stable/include/linux/kdb.h
|
|||
static inline void kdb_init(int level) {}
|
||||
static inline int kdb_register(char *cmd, kdb_func_t func, char *usage,
|
||||
char *help, short minlen) { return 0; }
|
||||
Index: linux-stable/kernel/debug/kdb/kdb_io.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/debug/kdb/kdb_io.c
|
||||
+++ linux-stable/kernel/debug/kdb/kdb_io.c
|
||||
--- a/kernel/debug/kdb/kdb_io.c
|
||||
+++ b/kernel/debug/kdb/kdb_io.c
|
||||
@@ -554,7 +554,6 @@ int vkdb_printf(const char *fmt, va_list
|
||||
int linecount;
|
||||
int colcount;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: latency-hist.patch
|
||||
From: Carsten Emde <C.Emde@osadl.org>
|
||||
Date: Tue, 19 Jul 2011 14:03:41 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
This patch provides a recording mechanism to store data of potential
|
||||
sources of system latencies. The recordings separately determine the
|
||||
|
@ -26,10 +26,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/trace/trace_irqsoff.c | 11
|
||||
10 files changed, 1612 insertions(+)
|
||||
|
||||
Index: linux-stable/Documentation/trace/histograms.txt
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/Documentation/trace/histograms.txt
|
||||
+++ b/Documentation/trace/histograms.txt
|
||||
@@ -0,0 +1,186 @@
|
||||
+ Using the Linux Kernel Latency Histograms
|
||||
+
|
||||
|
@ -217,10 +215,8 @@ Index: linux-stable/Documentation/trace/histograms.txt
|
|||
+is provided.
|
||||
+
|
||||
+These data are also reset when the wakeup histogram is reset.
|
||||
Index: linux-stable/include/linux/hrtimer.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/hrtimer.h
|
||||
+++ linux-stable/include/linux/hrtimer.h
|
||||
--- a/include/linux/hrtimer.h
|
||||
+++ b/include/linux/hrtimer.h
|
||||
@@ -111,6 +111,9 @@ struct hrtimer {
|
||||
enum hrtimer_restart (*function)(struct hrtimer *);
|
||||
struct hrtimer_clock_base *base;
|
||||
|
@ -231,11 +227,9 @@ Index: linux-stable/include/linux/hrtimer.h
|
|||
#ifdef CONFIG_TIMER_STATS
|
||||
int start_pid;
|
||||
void *start_site;
|
||||
Index: linux-stable/include/linux/sched.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/sched.h
|
||||
+++ linux-stable/include/linux/sched.h
|
||||
@@ -1406,6 +1406,12 @@ struct task_struct {
|
||||
--- a/include/linux/sched.h
|
||||
+++ b/include/linux/sched.h
|
||||
@@ -1409,6 +1409,12 @@ struct task_struct {
|
||||
unsigned long trace;
|
||||
/* bitmask and counter of trace recursion */
|
||||
unsigned long trace_recursion;
|
||||
|
@ -248,10 +242,8 @@ Index: linux-stable/include/linux/sched.h
|
|||
#endif /* CONFIG_TRACING */
|
||||
#ifdef CONFIG_MEMCG /* memcg uses this to do batch job */
|
||||
struct memcg_batch_info {
|
||||
Index: linux-stable/include/trace/events/hist.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/include/trace/events/hist.h
|
||||
+++ b/include/trace/events/hist.h
|
||||
@@ -0,0 +1,69 @@
|
||||
+#undef TRACE_SYSTEM
|
||||
+#define TRACE_SYSTEM hist
|
||||
|
@ -322,10 +314,8 @@ Index: linux-stable/include/trace/events/hist.h
|
|||
+
|
||||
+/* This part must be outside protection */
|
||||
+#include <trace/define_trace.h>
|
||||
Index: linux-stable/include/trace/events/latency_hist.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/include/trace/events/latency_hist.h
|
||||
+++ b/include/trace/events/latency_hist.h
|
||||
@@ -0,0 +1,29 @@
|
||||
+#ifndef _LATENCY_HIST_H
|
||||
+#define _LATENCY_HIST_H
|
||||
|
@ -356,10 +346,8 @@ Index: linux-stable/include/trace/events/latency_hist.h
|
|||
+}
|
||||
+
|
||||
+#endif /* _LATENCY_HIST_H */
|
||||
Index: linux-stable/kernel/hrtimer.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/hrtimer.c
|
||||
+++ linux-stable/kernel/hrtimer.c
|
||||
--- a/kernel/hrtimer.c
|
||||
+++ b/kernel/hrtimer.c
|
||||
@@ -51,6 +51,7 @@
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
|
@ -368,7 +356,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
|
||||
/*
|
||||
* The timer bases:
|
||||
@@ -989,6 +990,17 @@ int __hrtimer_start_range_ns(struct hrti
|
||||
@@ -994,6 +995,17 @@ int __hrtimer_start_range_ns(struct hrti
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -386,7 +374,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
hrtimer_set_expires_range_ns(timer, tim, delta_ns);
|
||||
|
||||
timer_stats_hrtimer_set_start_info(timer);
|
||||
@@ -1267,6 +1279,8 @@ static void __run_hrtimer(struct hrtimer
|
||||
@@ -1272,6 +1284,8 @@ static void __run_hrtimer(struct hrtimer
|
||||
|
||||
#ifdef CONFIG_HIGH_RES_TIMERS
|
||||
|
||||
|
@ -395,7 +383,7 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
/*
|
||||
* High resolution timer interrupt
|
||||
* Called with interrupts disabled
|
||||
@@ -1310,6 +1324,15 @@ retry:
|
||||
@@ -1315,6 +1329,15 @@ retry:
|
||||
|
||||
timer = container_of(node, struct hrtimer, node);
|
||||
|
||||
|
@ -411,10 +399,8 @@ Index: linux-stable/kernel/hrtimer.c
|
|||
/*
|
||||
* The immediate goal for using the softexpires is
|
||||
* minimizing wakeups, not running timers at the
|
||||
Index: linux-stable/kernel/trace/Kconfig
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/trace/Kconfig
|
||||
+++ linux-stable/kernel/trace/Kconfig
|
||||
--- a/kernel/trace/Kconfig
|
||||
+++ b/kernel/trace/Kconfig
|
||||
@@ -192,6 +192,24 @@ config IRQSOFF_TRACER
|
||||
enabled. This option and the preempt-off timing option can be
|
||||
used together or separately.)
|
||||
|
@ -540,10 +526,8 @@ Index: linux-stable/kernel/trace/Kconfig
|
|||
config ENABLE_DEFAULT_TRACERS
|
||||
bool "Trace process context switches and events"
|
||||
depends on !GENERIC_TRACER
|
||||
Index: linux-stable/kernel/trace/Makefile
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/trace/Makefile
|
||||
+++ linux-stable/kernel/trace/Makefile
|
||||
--- a/kernel/trace/Makefile
|
||||
+++ b/kernel/trace/Makefile
|
||||
@@ -34,6 +34,10 @@ obj-$(CONFIG_FUNCTION_TRACER) += trace_f
|
||||
obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
|
||||
obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o
|
||||
|
@ -555,10 +539,8 @@ Index: linux-stable/kernel/trace/Makefile
|
|||
obj-$(CONFIG_NOP_TRACER) += trace_nop.o
|
||||
obj-$(CONFIG_STACK_TRACER) += trace_stack.o
|
||||
obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
|
||||
Index: linux-stable/kernel/trace/latency_hist.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/kernel/trace/latency_hist.c
|
||||
+++ b/kernel/trace/latency_hist.c
|
||||
@@ -0,0 +1,1177 @@
|
||||
+/*
|
||||
+ * kernel/trace/latency_hist.c
|
||||
|
@ -1737,10 +1719,8 @@ Index: linux-stable/kernel/trace/latency_hist.c
|
|||
+}
|
||||
+
|
||||
+__initcall(latency_hist_init);
|
||||
Index: linux-stable/kernel/trace/trace_irqsoff.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/trace/trace_irqsoff.c
|
||||
+++ linux-stable/kernel/trace/trace_irqsoff.c
|
||||
--- a/kernel/trace/trace_irqsoff.c
|
||||
+++ b/kernel/trace/trace_irqsoff.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <linux/fs.h>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: lglocks-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 15 Jun 2011 11:02:21 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -9,10 +9,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/lglock.c | 54 ++++++++++++++++++++++++++++++++-----------------
|
||||
2 files changed, 53 insertions(+), 20 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/lglock.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/lglock.h
|
||||
+++ linux-stable/include/linux/lglock.h
|
||||
--- a/include/linux/lglock.h
|
||||
+++ b/include/linux/lglock.h
|
||||
@@ -42,22 +42,37 @@
|
||||
#endif
|
||||
|
||||
|
@ -53,10 +51,8 @@ Index: linux-stable/include/linux/lglock.h
|
|||
|
||||
void lg_lock_init(struct lglock *lg, char *name);
|
||||
void lg_local_lock(struct lglock *lg);
|
||||
Index: linux-stable/kernel/lglock.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/lglock.c
|
||||
+++ linux-stable/kernel/lglock.c
|
||||
--- a/kernel/lglock.c
|
||||
+++ b/kernel/lglock.c
|
||||
@@ -4,6 +4,15 @@
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/string.h>
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: list-add-list-last-entry.patch
|
||||
From: Peter Zijlstra <peterz@infradead.org>
|
||||
Date: Tue, 21 Jun 2011 11:22:36 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
include/linux/list.h | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
Index: linux-stable/include/linux/list.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/list.h
|
||||
+++ linux-stable/include/linux/list.h
|
||||
--- a/include/linux/list.h
|
||||
+++ b/include/linux/list.h
|
||||
@@ -373,6 +373,17 @@ static inline void list_splice_tail_init
|
||||
(!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Paul Gortmaker <paul.gortmaker@windriver.com>
|
||||
Date: Fri, 21 Jun 2013 15:07:25 -0400
|
||||
Subject: [PATCH] list_bl.h: make list head locking RT safe
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
As per changes in include/linux/jbd_common.h for avoiding the
|
||||
bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal
|
||||
|
@ -48,13 +48,11 @@ Cc: stable-rt@vger.kernel.org
|
|||
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
include/linux/list_bl.h | 24 ++++++++++++++++++++++--
|
||||
1 file changed, 22 insertions(+), 2 deletions(-)
|
||||
include/linux/list_bl.h | 28 ++++++++++++++++++++++++++--
|
||||
1 file changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/list_bl.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/list_bl.h
|
||||
+++ linux-stable/include/linux/list_bl.h
|
||||
--- a/include/linux/list_bl.h
|
||||
+++ b/include/linux/list_bl.h
|
||||
@@ -2,6 +2,7 @@
|
||||
#define _LINUX_LIST_BL_H
|
||||
|
||||
|
@ -88,7 +86,7 @@ Index: linux-stable/include/linux/list_bl.h
|
|||
|
||||
static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
|
||||
{
|
||||
@@ -117,12 +127,22 @@ static inline void hlist_bl_del_init(str
|
||||
@@ -117,12 +127,26 @@ static inline void hlist_bl_del_init(str
|
||||
|
||||
static inline void hlist_bl_lock(struct hlist_bl_head *b)
|
||||
{
|
||||
|
@ -96,7 +94,9 @@ Index: linux-stable/include/linux/list_bl.h
|
|||
bit_spin_lock(0, (unsigned long *)b);
|
||||
+#else
|
||||
+ raw_spin_lock(&b->lock);
|
||||
+#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
|
||||
+ __set_bit(0, (unsigned long *)b);
|
||||
+#endif
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,9 @@ Index: linux-stable/include/linux/list_bl.h
|
|||
+#ifndef CONFIG_PREEMPT_RT_BASE
|
||||
__bit_spin_unlock(0, (unsigned long *)b);
|
||||
+#else
|
||||
+#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
|
||||
+ __clear_bit(0, (unsigned long *)b);
|
||||
+#endif
|
||||
+ raw_spin_unlock(&b->lock);
|
||||
+#endif
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 21 Jul 2009 22:34:14 +0200
|
||||
Subject: rt: local_irq_* variants depending on RT/!RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Add local_irq_*_(no)rt variant which are mainly used to break
|
||||
interrupt disabled sections on PREEMPT_RT or to explicitely disable
|
||||
|
@ -14,10 +14,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
include/linux/irqflags.h | 19 +++++++++++++++++++
|
||||
2 files changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/include/linux/interrupt.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/interrupt.h
|
||||
+++ linux-stable/include/linux/interrupt.h
|
||||
--- a/include/linux/interrupt.h
|
||||
+++ b/include/linux/interrupt.h
|
||||
@@ -211,7 +211,7 @@ extern void devm_free_irq(struct device
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
# define local_irq_enable_in_hardirq() do { } while (0)
|
||||
|
@ -27,10 +25,8 @@ Index: linux-stable/include/linux/interrupt.h
|
|||
#endif
|
||||
|
||||
extern void disable_irq_nosync(unsigned int irq);
|
||||
Index: linux-stable/include/linux/irqflags.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/irqflags.h
|
||||
+++ linux-stable/include/linux/irqflags.h
|
||||
--- a/include/linux/irqflags.h
|
||||
+++ b/include/linux/irqflags.h
|
||||
@@ -147,4 +147,23 @@
|
||||
|
||||
#endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: local-var.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 24 Jun 2011 18:40:37 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
include/linux/percpu.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
Index: linux-stable/include/linux/percpu.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/percpu.h
|
||||
+++ linux-stable/include/linux/percpu.h
|
||||
--- a/include/linux/percpu.h
|
||||
+++ b/include/linux/percpu.h
|
||||
@@ -48,6 +48,11 @@
|
||||
preempt_enable(); \
|
||||
} while (0)
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
Subject: local-vars-migrate-disable.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 28 Jun 2011 20:42:16 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
include/linux/percpu.h | 28 ++++++++++++++++++++++++----
|
||||
1 file changed, 24 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/percpu.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/percpu.h
|
||||
+++ linux-stable/include/linux/percpu.h
|
||||
--- a/include/linux/percpu.h
|
||||
+++ b/include/linux/percpu.h
|
||||
@@ -48,10 +48,30 @@
|
||||
preempt_enable(); \
|
||||
} while (0)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: localversion.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 08 Jul 2011 20:25:16 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
|
@ -10,9 +10,7 @@ Link: http://lkml.kernel.org/n/tip-8vdw4bfcsds27cvox6rpb334@git.kernel.org
|
|||
localversion-rt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: linux-stable/localversion-rt
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-stable/localversion-rt
|
||||
+++ b/localversion-rt
|
||||
@@ -0,0 +1 @@
|
||||
+-rt1
|
||||
+-rt3
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: lockdep-rt.patch
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 18:51:23 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
@ -9,10 +9,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/lockdep.c | 2 ++
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: linux-stable/include/linux/irqflags.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/include/linux/irqflags.h
|
||||
+++ linux-stable/include/linux/irqflags.h
|
||||
--- a/include/linux/irqflags.h
|
||||
+++ b/include/linux/irqflags.h
|
||||
@@ -25,8 +25,6 @@
|
||||
# define trace_softirqs_enabled(p) ((p)->softirqs_enabled)
|
||||
# define trace_hardirq_enter() do { current->hardirq_context++; } while (0)
|
||||
|
@ -39,10 +37,8 @@ Index: linux-stable/include/linux/irqflags.h
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_IRQSOFF_TRACER) || \
|
||||
Index: linux-stable/kernel/lockdep.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/lockdep.c
|
||||
+++ linux-stable/kernel/lockdep.c
|
||||
--- a/kernel/lockdep.c
|
||||
+++ b/kernel/lockdep.c
|
||||
@@ -3541,6 +3541,7 @@ static void check_flags(unsigned long fl
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: lockdep: Selftest: Only do hardirq context test for raw spinlock
|
||||
From: Yong Zhang <yong.zhang0@gmail.com>
|
||||
Date: Mon, 16 Apr 2012 15:01:56 +0800
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
From: Yong Zhang <yong.zhang@windriver.com>
|
||||
|
||||
|
@ -16,10 +16,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
lib/locking-selftest.c | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
|
||||
Index: linux-stable/lib/locking-selftest.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/lib/locking-selftest.c
|
||||
+++ linux-stable/lib/locking-selftest.c
|
||||
--- a/lib/locking-selftest.c
|
||||
+++ b/lib/locking-selftest.c
|
||||
@@ -1175,6 +1175,7 @@ void locking_selftest(void)
|
||||
|
||||
printk(" --------------------------------------------------------------------------\n");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 6 Apr 2010 16:51:31 +0200
|
||||
Subject: md: raid5: Make raid5_percpu handling RT aware
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
__raid_run_ops() disables preemption with get_cpu() around the access
|
||||
to the raid5_percpu variables. That causes scheduling while atomic
|
||||
|
@ -19,10 +19,8 @@ Tested-by: Udo van den Heuvel <udovdh@xs4all.nl>
|
|||
drivers/md/raid5.h | 1 +
|
||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: linux-stable/drivers/md/raid5.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/md/raid5.c
|
||||
+++ linux-stable/drivers/md/raid5.c
|
||||
--- a/drivers/md/raid5.c
|
||||
+++ b/drivers/md/raid5.c
|
||||
@@ -1418,8 +1418,9 @@ static void raid_run_ops(struct stripe_h
|
||||
struct raid5_percpu *percpu;
|
||||
unsigned long cpu;
|
||||
|
@ -53,7 +51,7 @@ Index: linux-stable/drivers/md/raid5.c
|
|||
static void raid5_build_block(struct stripe_head *sh, int i, int previous)
|
||||
{
|
||||
struct r5dev *dev = &sh->dev[i];
|
||||
@@ -4315,7 +4317,7 @@ static void make_request(struct mddev *m
|
||||
@@ -4320,7 +4322,7 @@ static void make_request(struct mddev *m
|
||||
previous,
|
||||
&dd_idx, NULL);
|
||||
pr_debug("raid456: make_request, sector %llu logical %llu\n",
|
||||
|
@ -62,7 +60,7 @@ Index: linux-stable/drivers/md/raid5.c
|
|||
(unsigned long long)logical_sector);
|
||||
|
||||
sh = get_active_stripe(conf, new_sector, previous,
|
||||
@@ -5111,6 +5113,7 @@ static int raid5_alloc_percpu(struct r5c
|
||||
@@ -5116,6 +5118,7 @@ static int raid5_alloc_percpu(struct r5c
|
||||
break;
|
||||
}
|
||||
per_cpu_ptr(conf->percpu, cpu)->scribble = scribble;
|
||||
|
@ -70,7 +68,7 @@ Index: linux-stable/drivers/md/raid5.c
|
|||
}
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
conf->cpu_notify.notifier_call = raid456_cpu_notify;
|
||||
@@ -5285,7 +5288,7 @@ static int only_parity(int raid_disk, in
|
||||
@@ -5290,7 +5293,7 @@ static int only_parity(int raid_disk, in
|
||||
return 1;
|
||||
break;
|
||||
case ALGORITHM_PARITY_0_6:
|
||||
|
@ -79,11 +77,9 @@ Index: linux-stable/drivers/md/raid5.c
|
|||
raid_disk == raid_disks - 1)
|
||||
return 1;
|
||||
break;
|
||||
Index: linux-stable/drivers/md/raid5.h
|
||||
===================================================================
|
||||
--- linux-stable.orig/drivers/md/raid5.h
|
||||
+++ linux-stable/drivers/md/raid5.h
|
||||
@@ -425,6 +425,7 @@ struct r5conf {
|
||||
--- a/drivers/md/raid5.h
|
||||
+++ b/drivers/md/raid5.h
|
||||
@@ -426,6 +426,7 @@ struct r5conf {
|
||||
int recovery_disabled;
|
||||
/* per cpu variables */
|
||||
struct raid5_percpu {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: sched: Check for idle task in might_sleep()
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 09 Jan 2013 23:34:08 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.6-rt3.tar.xz
|
||||
|
||||
Idle is not allowed to call sleeping functions ever!
|
||||
|
||||
|
@ -10,11 +10,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
kernel/sched/core.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-stable/kernel/sched/core.c
|
||||
===================================================================
|
||||
--- linux-stable.orig/kernel/sched/core.c
|
||||
+++ linux-stable/kernel/sched/core.c
|
||||
@@ -7481,7 +7481,8 @@ void __might_sleep(const char *file, int
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -7099,7 +7099,8 @@ void __might_sleep(const char *file, int
|
||||
static unsigned long prev_jiffy; /* ratelimiting */
|
||||
|
||||
rcu_sleep_check(); /* WARN_ON_ONCE() by default, no rate limit reqd. */
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue