[rt] Update to 3.10.6-rt3

svn path=/dists/sid/linux/; revision=20515
This commit is contained in:
Ben Hutchings 2013-08-17 13:23:28 +00:00
parent db19f6533d
commit 06a0e0f4c1
282 changed files with 1907 additions and 2898 deletions

2
debian/changelog vendored
View File

@ -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

View File

@ -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);

View File

@ -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();

View File

@ -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

View File

@ -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:
*/

View File

@ -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;

View File

@ -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

View File

@ -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..

View File

@ -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

View File

@ -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,
};

View File

@ -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"

View File

@ -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));
}

View File

@ -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

View File

@ -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>

View File

@ -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",

View File

@ -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 {

View File

@ -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;

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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 {

View File

@ -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);
}

View File

@ -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()

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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);

View File

@ -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);

View File

@ -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 */

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)

View File

@ -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;

View File

@ -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();
}

View File

@ -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)

View File

@ -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>

View File

@ -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("");

View File

@ -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;

View File

@ -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)

View File

@ -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.
*/

View File

@ -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... */

View File

@ -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 */

View File

@ -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, '.');

View File

@ -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.):
*/

View File

@ -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)

View File

@ -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"

View File

@ -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

View File

@ -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.
*/

View File

@ -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)

View File

@ -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;
}

View File

@ -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,
};

View File

@ -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;

View File

@ -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);

View 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;
}
}

View File

@ -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);

View File

@ -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));

View File

@ -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;
}

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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>

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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,
};

View File

@ -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;

View File

@ -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>

View File

@ -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>

View File

@ -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)

View File

@ -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
}

View File

@ -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 */

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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
}
}

View File

@ -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");

View File

@ -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 {

View File

@ -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