[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 * [armel/orion5x] I2C: mv64xxx: fix race between FSM/interrupt and process
context (Closes: #622325) context (Closes: #622325)
* [arm] Fix the world famous typo with is_gate_vma() * [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 ] [ Thorsten Glaser ]
* [m68k] debian/patches/bugfix/m68k/atari-irqs.patch: patch from mailing list * [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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 19 Mar 2013 14:44:30 +0100 Date: Tue, 19 Mar 2013 14:44:30 +0100
Subject: [PATCH] kernel/SRCU: provide a static initializer 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 There are macros for static initializer for the three out of four
possible notifier types, that are: possible notifier types, that are:
@ -18,10 +18,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
include/linux/srcu.h | 8 ++++---- include/linux/srcu.h | 8 ++++----
2 files changed, 29 insertions(+), 13 deletions(-) 2 files changed, 29 insertions(+), 13 deletions(-)
Index: linux-stable/include/linux/notifier.h --- a/include/linux/notifier.h
=================================================================== +++ b/include/linux/notifier.h
--- linux-stable.orig/include/linux/notifier.h
+++ linux-stable/include/linux/notifier.h
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
* *
* Alan Cox <Alan.Cox@linux.org> * 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. */ /* CPU notfiers are defined in include/linux/cpu.h. */
/* netdevice notifiers are defined in include/linux/netdevice.h */ /* netdevice notifiers are defined in include/linux/netdevice.h */
Index: linux-stable/include/linux/srcu.h --- a/include/linux/srcu.h
=================================================================== +++ b/include/linux/srcu.h
--- linux-stable.orig/include/linux/srcu.h
+++ linux-stable/include/linux/srcu.h
@@ -84,10 +84,10 @@ int init_srcu_struct(struct srcu_struct @@ -84,10 +84,10 @@ int init_srcu_struct(struct srcu_struct
void process_srcu(struct work_struct *work); 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 11 Mar 2013 17:09:55 +0100 Date: Mon, 11 Mar 2013 17:09:55 +0100
Subject: [PATCH 2/6] x86/highmem: add a "already used pte" check 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(). 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 ++ arch/x86/mm/iomap_32.c | 2 ++
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
Index: linux-stable/arch/x86/mm/iomap_32.c --- a/arch/x86/mm/iomap_32.c
=================================================================== +++ b/arch/x86/mm/iomap_32.c
--- linux-stable.orig/arch/x86/mm/iomap_32.c
+++ linux-stable/arch/x86/mm/iomap_32.c
@@ -65,6 +65,8 @@ void *kmap_atomic_prot_pfn(unsigned long @@ -65,6 +65,8 @@ void *kmap_atomic_prot_pfn(unsigned long
type = kmap_atomic_idx_push(); type = kmap_atomic_idx_push();
idx = type + KM_TYPE_NR * smp_processor_id(); 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 11 Mar 2013 21:37:27 +0100 Date: Mon, 11 Mar 2013 21:37:27 +0100
Subject: [PATCH 3/6] arm/highmem: flush tlb on unmap 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 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 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 +- arch/arm/mm/highmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/arch/arm/mm/highmem.c --- a/arch/arm/mm/highmem.c
=================================================================== +++ b/arch/arm/mm/highmem.c
--- linux-stable.orig/arch/arm/mm/highmem.c
+++ linux-stable/arch/arm/mm/highmem.c
@@ -95,10 +95,10 @@ void __kunmap_atomic(void *kvaddr) @@ -95,10 +95,10 @@ void __kunmap_atomic(void *kvaddr)
__cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE); __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
#ifdef CONFIG_DEBUG_HIGHMEM #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 Date: Fri, 1 Mar 2013 11:17:42 +0100
Subject: [PATCH 5/6] futex: Ensure lock/unlock symetry versus pi_lock and Subject: [PATCH 5/6] futex: Ensure lock/unlock symetry versus pi_lock and
hash bucket lock 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: 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 ++ kernel/futex.c | 2 ++
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
Index: linux-stable/kernel/futex.c --- a/kernel/futex.c
=================================================================== +++ b/kernel/futex.c
--- linux-stable.orig/kernel/futex.c
+++ linux-stable/kernel/futex.c
@@ -571,7 +571,9 @@ void exit_pi_state_list(struct task_stru @@ -571,7 +571,9 @@ void exit_pi_state_list(struct task_stru
* task still owns the PI-state: * 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Mar 2013 19:01:05 +0100 Date: Thu, 21 Mar 2013 19:01:05 +0100
Subject: [PATCH] HACK: printk: drop the logbuf_lock more often 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 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. 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 ++++++++++++++++++++++++++- kernel/printk.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-) 1 file changed, 26 insertions(+), 1 deletion(-)
Index: linux-stable/kernel/printk.c --- a/kernel/printk.c
=================================================================== +++ b/kernel/printk.c
--- linux-stable.orig/kernel/printk.c
+++ linux-stable/kernel/printk.c
@@ -1034,6 +1034,7 @@ static int syslog_print_all(char __user @@ -1034,6 +1034,7 @@ static int syslog_print_all(char __user
{ {
char *text; char *text;

View File

@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt@goodmis.org> From: Steven Rostedt <rostedt@goodmis.org>
Date: Wed, 13 Feb 2013 09:26:05 -0500 Date: Wed, 13 Feb 2013 09:26:05 -0500
Subject: [PATCH] acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t 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: 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 ++++++++++++++ include/acpi/platform/aclinux.h | 14 ++++++++++++++
5 files changed, 21 insertions(+), 7 deletions(-) 5 files changed, 21 insertions(+), 7 deletions(-)
Index: linux-stable/drivers/acpi/acpica/acglobal.h --- a/drivers/acpi/acpica/acglobal.h
=================================================================== +++ b/drivers/acpi/acpica/acglobal.h
--- linux-stable.orig/drivers/acpi/acpica/acglobal.h
+++ linux-stable/drivers/acpi/acpica/acglobal.h
@@ -223,7 +223,7 @@ ACPI_EXTERN u8 acpi_gbl_global_lock_pend @@ -223,7 +223,7 @@ ACPI_EXTERN u8 acpi_gbl_global_lock_pend
* interrupt level * interrupt level
*/ */
@ -84,10 +82,8 @@ Index: linux-stable/drivers/acpi/acpica/acglobal.h
ACPI_EXTERN acpi_spinlock acpi_gbl_reference_count_lock; ACPI_EXTERN acpi_spinlock acpi_gbl_reference_count_lock;
/* Mutex for _OSI support */ /* Mutex for _OSI support */
Index: linux-stable/drivers/acpi/acpica/hwregs.c --- a/drivers/acpi/acpica/hwregs.c
=================================================================== +++ b/drivers/acpi/acpica/hwregs.c
--- linux-stable.orig/drivers/acpi/acpica/hwregs.c
+++ linux-stable/drivers/acpi/acpica/hwregs.c
@@ -269,14 +269,14 @@ acpi_status acpi_hw_clear_acpi_status(vo @@ -269,14 +269,14 @@ acpi_status acpi_hw_clear_acpi_status(vo
ACPI_BITMASK_ALL_FIXED_STATUS, ACPI_BITMASK_ALL_FIXED_STATUS,
ACPI_FORMAT_UINT64(acpi_gbl_xpm1a_status.address))); ACPI_FORMAT_UINT64(acpi_gbl_xpm1a_status.address)));
@ -105,10 +101,8 @@ Index: linux-stable/drivers/acpi/acpica/hwregs.c
if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status))
goto exit; goto exit;
Index: linux-stable/drivers/acpi/acpica/hwxface.c --- a/drivers/acpi/acpica/hwxface.c
=================================================================== +++ b/drivers/acpi/acpica/hwxface.c
--- linux-stable.orig/drivers/acpi/acpica/hwxface.c
+++ linux-stable/drivers/acpi/acpica/hwxface.c
@@ -365,7 +365,7 @@ acpi_status acpi_write_bit_register(u32 @@ -365,7 +365,7 @@ acpi_status acpi_write_bit_register(u32
return_ACPI_STATUS(AE_BAD_PARAMETER); return_ACPI_STATUS(AE_BAD_PARAMETER);
} }
@ -127,10 +121,8 @@ Index: linux-stable/drivers/acpi/acpica/hwxface.c
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
Index: linux-stable/drivers/acpi/acpica/utmutex.c --- a/drivers/acpi/acpica/utmutex.c
=================================================================== +++ b/drivers/acpi/acpica/utmutex.c
--- linux-stable.orig/drivers/acpi/acpica/utmutex.c
+++ linux-stable/drivers/acpi/acpica/utmutex.c
@@ -88,7 +88,7 @@ acpi_status acpi_ut_mutex_initialize(voi @@ -88,7 +88,7 @@ acpi_status acpi_ut_mutex_initialize(voi
return_ACPI_STATUS (status); 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); acpi_os_delete_lock(acpi_gbl_reference_count_lock);
/* Delete the reader/writer lock */ /* Delete the reader/writer lock */
Index: linux-stable/include/acpi/platform/aclinux.h --- a/include/acpi/platform/aclinux.h
=================================================================== +++ b/include/acpi/platform/aclinux.h
--- linux-stable.orig/include/acpi/platform/aclinux.h
+++ linux-stable/include/acpi/platform/aclinux.h
@@ -72,6 +72,7 @@ @@ -72,6 +72,7 @@
#define acpi_cache_t struct kmem_cache #define acpi_cache_t struct kmem_cache

View File

@ -1,7 +1,7 @@
Subject: mm: Fixup all fault handlers to check current->pagefault_disable Subject: mm: Fixup all fault handlers to check current->pagefault_disable
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 17 Mar 2011 11:32:28 +0100 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. 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 +- arch/xtensa/mm/fault.c | 2 +-
22 files changed, 26 insertions(+), 23 deletions(-) 22 files changed, 26 insertions(+), 23 deletions(-)
Index: linux-stable/arch/alpha/mm/fault.c --- a/arch/alpha/mm/fault.c
=================================================================== +++ b/arch/alpha/mm/fault.c
--- linux-stable.orig/arch/alpha/mm/fault.c
+++ linux-stable/arch/alpha/mm/fault.c
@@ -108,7 +108,7 @@ do_page_fault(unsigned long address, uns @@ -108,7 +108,7 @@ do_page_fault(unsigned long address, uns
/* If we're in an interrupt context, or have no user context, /* 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; goto no_context;
#ifdef CONFIG_ALPHA_LARGE_VMALLOC #ifdef CONFIG_ALPHA_LARGE_VMALLOC
Index: linux-stable/arch/arm/mm/fault.c --- a/arch/arm/mm/fault.c
=================================================================== +++ b/arch/arm/mm/fault.c
--- linux-stable.orig/arch/arm/mm/fault.c
+++ linux-stable/arch/arm/mm/fault.c
@@ -279,7 +279,7 @@ do_page_fault(unsigned long addr, unsign @@ -279,7 +279,7 @@ do_page_fault(unsigned long addr, unsign
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -57,10 +53,8 @@ Index: linux-stable/arch/arm/mm/fault.c
goto no_context; goto no_context;
/* /*
Index: linux-stable/arch/avr32/mm/fault.c --- a/arch/avr32/mm/fault.c
=================================================================== +++ b/arch/avr32/mm/fault.c
--- linux-stable.orig/arch/avr32/mm/fault.c
+++ linux-stable/arch/avr32/mm/fault.c
@@ -81,7 +81,8 @@ asmlinkage void do_page_fault(unsigned l @@ -81,7 +81,8 @@ asmlinkage void do_page_fault(unsigned l
* If we're in an interrupt or have no user context, we must * If we're in an interrupt or have no user context, we must
* not take the fault... * not take the fault...
@ -71,10 +65,8 @@ Index: linux-stable/arch/avr32/mm/fault.c
goto no_context; goto no_context;
local_irq_enable(); local_irq_enable();
Index: linux-stable/arch/cris/mm/fault.c --- a/arch/cris/mm/fault.c
=================================================================== +++ b/arch/cris/mm/fault.c
--- linux-stable.orig/arch/cris/mm/fault.c
+++ linux-stable/arch/cris/mm/fault.c
@@ -114,7 +114,7 @@ do_page_fault(unsigned long address, str @@ -114,7 +114,7 @@ do_page_fault(unsigned long address, str
* user context, we must not take the fault. * user context, we must not take the fault.
*/ */
@ -84,10 +76,8 @@ Index: linux-stable/arch/cris/mm/fault.c
goto no_context; goto no_context;
retry: retry:
Index: linux-stable/arch/frv/mm/fault.c --- a/arch/frv/mm/fault.c
=================================================================== +++ b/arch/frv/mm/fault.c
--- linux-stable.orig/arch/frv/mm/fault.c
+++ linux-stable/arch/frv/mm/fault.c
@@ -78,7 +78,7 @@ asmlinkage void do_page_fault(int datamm @@ -78,7 +78,7 @@ asmlinkage void do_page_fault(int datamm
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -97,10 +87,8 @@ Index: linux-stable/arch/frv/mm/fault.c
goto no_context; goto no_context;
down_read(&mm->mmap_sem); down_read(&mm->mmap_sem);
Index: linux-stable/arch/ia64/mm/fault.c --- a/arch/ia64/mm/fault.c
=================================================================== +++ b/arch/ia64/mm/fault.c
--- linux-stable.orig/arch/ia64/mm/fault.c
+++ linux-stable/arch/ia64/mm/fault.c
@@ -98,7 +98,7 @@ ia64_do_page_fault (unsigned long addres @@ -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.. * 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; goto no_context;
#ifdef CONFIG_VIRTUAL_MEM_MAP #ifdef CONFIG_VIRTUAL_MEM_MAP
Index: linux-stable/arch/m32r/mm/fault.c --- a/arch/m32r/mm/fault.c
=================================================================== +++ b/arch/m32r/mm/fault.c
--- linux-stable.orig/arch/m32r/mm/fault.c
+++ linux-stable/arch/m32r/mm/fault.c
@@ -114,7 +114,7 @@ asmlinkage void do_page_fault(struct pt_ @@ -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 * 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.. * 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; goto bad_area_nosemaphore;
/* When running in the kernel we expect faults to occur only to /* When running in the kernel we expect faults to occur only to
Index: linux-stable/arch/m68k/mm/fault.c --- a/arch/m68k/mm/fault.c
=================================================================== +++ b/arch/m68k/mm/fault.c
--- linux-stable.orig/arch/m68k/mm/fault.c
+++ linux-stable/arch/m68k/mm/fault.c
@@ -85,7 +85,7 @@ int do_page_fault(struct pt_regs *regs, @@ -85,7 +85,7 @@ int do_page_fault(struct pt_regs *regs,
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -136,10 +120,8 @@ Index: linux-stable/arch/m68k/mm/fault.c
goto no_context; goto no_context;
retry: retry:
Index: linux-stable/arch/microblaze/mm/fault.c --- a/arch/microblaze/mm/fault.c
=================================================================== +++ b/arch/microblaze/mm/fault.c
--- linux-stable.orig/arch/microblaze/mm/fault.c
+++ linux-stable/arch/microblaze/mm/fault.c
@@ -108,7 +108,7 @@ void do_page_fault(struct pt_regs *regs, @@ -108,7 +108,7 @@ void do_page_fault(struct pt_regs *regs,
if ((error_code & 0x13) == 0x13 || (error_code & 0x11) == 0x11) if ((error_code & 0x13) == 0x13 || (error_code & 0x11) == 0x11)
is_write = 0; is_write = 0;
@ -149,10 +131,8 @@ Index: linux-stable/arch/microblaze/mm/fault.c
if (kernel_mode(regs)) if (kernel_mode(regs))
goto bad_area_nosemaphore; goto bad_area_nosemaphore;
Index: linux-stable/arch/mips/mm/fault.c --- a/arch/mips/mm/fault.c
=================================================================== +++ b/arch/mips/mm/fault.c
--- linux-stable.orig/arch/mips/mm/fault.c
+++ linux-stable/arch/mips/mm/fault.c
@@ -89,7 +89,7 @@ asmlinkage void __kprobes do_page_fault( @@ -89,7 +89,7 @@ asmlinkage void __kprobes do_page_fault(
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -162,10 +142,8 @@ Index: linux-stable/arch/mips/mm/fault.c
goto bad_area_nosemaphore; goto bad_area_nosemaphore;
retry: retry:
Index: linux-stable/arch/mn10300/mm/fault.c --- a/arch/mn10300/mm/fault.c
=================================================================== +++ b/arch/mn10300/mm/fault.c
--- linux-stable.orig/arch/mn10300/mm/fault.c
+++ linux-stable/arch/mn10300/mm/fault.c
@@ -168,7 +168,7 @@ asmlinkage void do_page_fault(struct pt_ @@ -168,7 +168,7 @@ asmlinkage void do_page_fault(struct pt_
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -175,10 +153,8 @@ Index: linux-stable/arch/mn10300/mm/fault.c
goto no_context; goto no_context;
retry: retry:
Index: linux-stable/arch/parisc/mm/fault.c --- a/arch/parisc/mm/fault.c
=================================================================== +++ b/arch/parisc/mm/fault.c
--- linux-stable.orig/arch/parisc/mm/fault.c
+++ linux-stable/arch/parisc/mm/fault.c
@@ -177,7 +177,7 @@ void do_page_fault(struct pt_regs *regs, @@ -177,7 +177,7 @@ void do_page_fault(struct pt_regs *regs,
int fault; int fault;
unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; 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; goto no_context;
retry: retry:
Index: linux-stable/arch/powerpc/mm/fault.c --- a/arch/powerpc/mm/fault.c
=================================================================== +++ b/arch/powerpc/mm/fault.c
--- linux-stable.orig/arch/powerpc/mm/fault.c
+++ linux-stable/arch/powerpc/mm/fault.c
@@ -264,7 +264,7 @@ int __kprobes do_page_fault(struct pt_re @@ -264,7 +264,7 @@ int __kprobes do_page_fault(struct pt_re
if (!arch_irq_disabled_regs(regs)) if (!arch_irq_disabled_regs(regs))
local_irq_enable(); local_irq_enable();
@ -201,10 +175,8 @@ Index: linux-stable/arch/powerpc/mm/fault.c
if (!user_mode(regs)) { if (!user_mode(regs)) {
rc = SIGSEGV; rc = SIGSEGV;
goto bail; goto bail;
Index: linux-stable/arch/s390/mm/fault.c --- a/arch/s390/mm/fault.c
=================================================================== +++ b/arch/s390/mm/fault.c
--- linux-stable.orig/arch/s390/mm/fault.c
+++ linux-stable/arch/s390/mm/fault.c
@@ -296,7 +296,8 @@ static inline int do_exception(struct pt @@ -296,7 +296,8 @@ static inline int do_exception(struct pt
* user context. * user context.
*/ */
@ -225,10 +197,8 @@ Index: linux-stable/arch/s390/mm/fault.c
goto no_context; goto no_context;
down_read(&mm->mmap_sem); down_read(&mm->mmap_sem);
Index: linux-stable/arch/score/mm/fault.c --- a/arch/score/mm/fault.c
=================================================================== +++ b/arch/score/mm/fault.c
--- linux-stable.orig/arch/score/mm/fault.c
+++ linux-stable/arch/score/mm/fault.c
@@ -72,7 +72,7 @@ asmlinkage void do_page_fault(struct pt_ @@ -72,7 +72,7 @@ asmlinkage void do_page_fault(struct pt_
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -238,10 +208,8 @@ Index: linux-stable/arch/score/mm/fault.c
goto bad_area_nosemaphore; goto bad_area_nosemaphore;
down_read(&mm->mmap_sem); down_read(&mm->mmap_sem);
Index: linux-stable/arch/sh/mm/fault.c --- a/arch/sh/mm/fault.c
=================================================================== +++ b/arch/sh/mm/fault.c
--- linux-stable.orig/arch/sh/mm/fault.c
+++ linux-stable/arch/sh/mm/fault.c
@@ -440,7 +440,7 @@ asmlinkage void __kprobes do_page_fault( @@ -440,7 +440,7 @@ asmlinkage void __kprobes do_page_fault(
* If we're in an interrupt, have no user context or are running * If we're in an interrupt, have no user context or are running
* in an atomic region then we must not take the fault: * 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); bad_area_nosemaphore(regs, error_code, address);
return; return;
} }
Index: linux-stable/arch/sparc/mm/fault_32.c --- a/arch/sparc/mm/fault_32.c
=================================================================== +++ b/arch/sparc/mm/fault_32.c
--- linux-stable.orig/arch/sparc/mm/fault_32.c
+++ linux-stable/arch/sparc/mm/fault_32.c
@@ -200,7 +200,7 @@ asmlinkage void do_sparc_fault(struct pt @@ -200,7 +200,7 @@ asmlinkage void do_sparc_fault(struct pt
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * context, we must not take the fault..
@ -264,10 +230,8 @@ Index: linux-stable/arch/sparc/mm/fault_32.c
goto no_context; goto no_context;
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
Index: linux-stable/arch/sparc/mm/fault_64.c --- a/arch/sparc/mm/fault_64.c
=================================================================== +++ b/arch/sparc/mm/fault_64.c
--- linux-stable.orig/arch/sparc/mm/fault_64.c
+++ linux-stable/arch/sparc/mm/fault_64.c
@@ -321,7 +321,7 @@ asmlinkage void __kprobes do_sparc64_fau @@ -321,7 +321,7 @@ asmlinkage void __kprobes do_sparc64_fau
* If we're in an interrupt or have no user * If we're in an interrupt or have no user
* context, we must not take the fault.. * 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; goto intr_or_no_mm;
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
Index: linux-stable/arch/tile/mm/fault.c --- a/arch/tile/mm/fault.c
=================================================================== +++ b/arch/tile/mm/fault.c
--- linux-stable.orig/arch/tile/mm/fault.c
+++ linux-stable/arch/tile/mm/fault.c
@@ -360,7 +360,7 @@ static int handle_page_fault(struct pt_r @@ -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 * If we're in an interrupt, have no user context or are running in an
* atomic region then we must not take the fault. * 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 */ vma = NULL; /* happy compiler */
goto bad_area_nosemaphore; goto bad_area_nosemaphore;
} }
Index: linux-stable/arch/um/kernel/trap.c --- a/arch/um/kernel/trap.c
=================================================================== +++ b/arch/um/kernel/trap.c
--- linux-stable.orig/arch/um/kernel/trap.c
+++ linux-stable/arch/um/kernel/trap.c
@@ -39,7 +39,7 @@ int handle_page_fault(unsigned long addr @@ -39,7 +39,7 @@ int handle_page_fault(unsigned long addr
* If the fault was during atomic operation, don't take the fault, just * If the fault was during atomic operation, don't take the fault, just
* fail. * fail.
@ -303,10 +263,8 @@ Index: linux-stable/arch/um/kernel/trap.c
goto out_nosemaphore; goto out_nosemaphore;
retry: retry:
Index: linux-stable/arch/x86/mm/fault.c --- a/arch/x86/mm/fault.c
=================================================================== +++ b/arch/x86/mm/fault.c
--- linux-stable.orig/arch/x86/mm/fault.c
+++ linux-stable/arch/x86/mm/fault.c
@@ -1104,7 +1104,7 @@ __do_page_fault(struct pt_regs *regs, un @@ -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 * If we're in an interrupt, have no user context or are running
* in an atomic region then we must not take the fault: * 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); bad_area_nosemaphore(regs, error_code, address);
return; return;
} }
Index: linux-stable/arch/xtensa/mm/fault.c --- a/arch/xtensa/mm/fault.c
=================================================================== +++ b/arch/xtensa/mm/fault.c
--- linux-stable.orig/arch/xtensa/mm/fault.c
+++ linux-stable/arch/xtensa/mm/fault.c
@@ -57,7 +57,7 @@ void do_page_fault(struct pt_regs *regs) @@ -57,7 +57,7 @@ void do_page_fault(struct pt_regs *regs)
/* If we're in an interrupt or have no user /* If we're in an interrupt or have no user
* context, we must not take the fault.. * 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> From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Sat, 6 Mar 2010 17:47:10 +0100 Date: Sat, 6 Mar 2010 17:47:10 +0100
Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused 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. Setup and remove the interrupt handler in clock event mode selection.
This avoids calling the (shared) interrupt handler when the device is 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 ++++- arch/arm/mach-at91/at91sam926x_time.c | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-) 2 files changed, 5 insertions(+), 1 deletion(-)
Index: 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
--- linux-stable.orig/arch/arm/mach-at91/at91rm9200_time.c
+++ linux-stable/arch/arm/mach-at91/at91rm9200_time.c
@@ -134,6 +134,7 @@ clkevt32k_mode(enum clock_event_mode mod @@ -134,6 +134,7 @@ clkevt32k_mode(enum clock_event_mode mod
break; break;
case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_SHUTDOWN:
@ -27,10 +25,8 @@ Index: linux-stable/arch/arm/mach-at91/at91rm9200_time.c
case CLOCK_EVT_MODE_RESUME: case CLOCK_EVT_MODE_RESUME:
irqmask = 0; irqmask = 0;
break; break;
Index: 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
--- linux-stable.orig/arch/arm/mach-at91/at91sam926x_time.c
+++ linux-stable/arch/arm/mach-at91/at91sam926x_time.c
@@ -77,7 +77,7 @@ static struct clocksource pit_clk = { @@ -77,7 +77,7 @@ static struct clocksource pit_clk = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS, .flags = CLOCK_SOURCE_IS_CONTINUOUS,
}; };

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 1 May 2010 18:29:35 +0200 Date: Sat, 1 May 2010 18:29:35 +0200
Subject: ARM: at91: tclib: Default to tclib timer for RT 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 RT is not too happy about the shared timer interrupt in AT91
devices. Default to tclib timer for RT. devices. Default to tclib timer for RT.
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/misc/Kconfig | 3 ++- drivers/misc/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-stable/drivers/misc/Kconfig --- a/drivers/misc/Kconfig
=================================================================== +++ b/drivers/misc/Kconfig
--- linux-stable.orig/drivers/misc/Kconfig
+++ linux-stable/drivers/misc/Kconfig
@@ -63,6 +63,7 @@ config ATMEL_PWM @@ -63,6 +63,7 @@ config ATMEL_PWM
config ATMEL_TCLIB config ATMEL_TCLIB
bool "Atmel AT32/AT91 Timer/Counter Library" 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> From: Frank Rowand <frank.rowand@am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700 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 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. 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-msm/platsmp.c | 10 +++++-----
arch/arm/mach-omap2/omap-smp.c | 10 +++++----- arch/arm/mach-omap2/omap-smp.c | 10 +++++-----
arch/arm/mach-prima2/platsmp.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/mach-ux500/platsmp.c | 10 +++++-----
arch/arm/plat-versatile/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 --- a/arch/arm/mach-exynos/platsmp.c
=================================================================== +++ b/arch/arm/mach-exynos/platsmp.c
--- linux-stable.orig/arch/arm/mach-exynos/platsmp.c
+++ linux-stable/arch/arm/mach-exynos/platsmp.c
@@ -71,7 +71,7 @@ static void __iomem *scu_base_addr(void) @@ -71,7 +71,7 @@ static void __iomem *scu_base_addr(void)
return (void __iomem *)(S5P_VA_SCU); 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; return pen_release != -1 ? -ENOSYS : 0;
} }
Index: linux-stable/arch/arm/mach-msm/platsmp.c --- a/arch/arm/mach-msm/platsmp.c
=================================================================== +++ b/arch/arm/mach-msm/platsmp.c
--- linux-stable.orig/arch/arm/mach-msm/platsmp.c
+++ linux-stable/arch/arm/mach-msm/platsmp.c
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
extern void msm_secondary_startup(void); 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; return pen_release != -1 ? -ENOSYS : 0;
} }
Index: 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
--- linux-stable.orig/arch/arm/mach-omap2/omap-smp.c
+++ linux-stable/arch/arm/mach-omap2/omap-smp.c
@@ -44,7 +44,7 @@ u16 pm44xx_errata; @@ -44,7 +44,7 @@ u16 pm44xx_errata;
/* SCU base address */ /* SCU base address */
static void __iomem *scu_base; static void __iomem *scu_base;
@ -165,10 +158,8 @@ Index: linux-stable/arch/arm/mach-omap2/omap-smp.c
return 0; return 0;
} }
Index: linux-stable/arch/arm/mach-prima2/platsmp.c --- a/arch/arm/mach-prima2/platsmp.c
=================================================================== +++ b/arch/arm/mach-prima2/platsmp.c
--- linux-stable.orig/arch/arm/mach-prima2/platsmp.c
+++ linux-stable/arch/arm/mach-prima2/platsmp.c
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
static void __iomem *scu_base; static void __iomem *scu_base;
static void __iomem *rsc_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; return pen_release != -1 ? -ENOSYS : 0;
} }
Index: linux-stable/arch/arm/mach-spear/platsmp.c --- a/arch/arm/mach-spear/platsmp.c
=================================================================== +++ b/arch/arm/mach-spear/platsmp.c
--- linux-stable.orig/arch/arm/mach-spear/platsmp.c @@ -20,7 +20,7 @@
+++ linux-stable/arch/arm/mach-spear/platsmp.c #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 @@ -36,8 +36,8 @@ static void __cpuinit spear13xx_secondar
/* /*
* Synchronise with the boot thread. * Synchronise with the boot thread.
@ -240,10 +238,8 @@ Index: linux-stable/arch/arm/mach-spear/platsmp.c
return pen_release != -1 ? -ENOSYS : 0; return pen_release != -1 ? -ENOSYS : 0;
} }
Index: linux-stable/arch/arm/mach-ux500/platsmp.c --- a/arch/arm/mach-ux500/platsmp.c
=================================================================== +++ b/arch/arm/mach-ux500/platsmp.c
--- linux-stable.orig/arch/arm/mach-ux500/platsmp.c
+++ linux-stable/arch/arm/mach-ux500/platsmp.c
@@ -52,7 +52,7 @@ static void __iomem *scu_base_addr(void) @@ -52,7 +52,7 @@ static void __iomem *scu_base_addr(void)
return NULL; return NULL;
} }
@ -282,10 +278,8 @@ Index: linux-stable/arch/arm/mach-ux500/platsmp.c
return pen_release != -1 ? -ENOSYS : 0; return pen_release != -1 ? -ENOSYS : 0;
} }
Index: linux-stable/arch/arm/plat-versatile/platsmp.c --- a/arch/arm/plat-versatile/platsmp.c
=================================================================== +++ b/arch/arm/plat-versatile/platsmp.c
--- linux-stable.orig/arch/arm/plat-versatile/platsmp.c
+++ linux-stable/arch/arm/plat-versatile/platsmp.c
@@ -31,7 +31,7 @@ static void __cpuinit write_pen_release( @@ -31,7 +31,7 @@ static void __cpuinit write_pen_release(
outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1)); outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
} }

View File

@ -1,17 +1,15 @@
Subject: arm-disable-highmem-on-rt.patch Subject: arm-disable-highmem-on-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:09:28 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
arch/arm/Kconfig | 2 +- arch/arm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/arch/arm/Kconfig --- a/arch/arm/Kconfig
=================================================================== +++ b/arch/arm/Kconfig
--- linux-stable.orig/arch/arm/Kconfig
+++ linux-stable/arch/arm/Kconfig
@@ -1704,7 +1704,7 @@ config HAVE_ARCH_PFN_VALID @@ -1704,7 +1704,7 @@ config HAVE_ARCH_PFN_VALID
config HIGHMEM config HIGHMEM

View File

@ -1,7 +1,7 @@
Subject: arm-enable-highmem-for-rt.patch Subject: arm-enable-highmem-for-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 13 Feb 2013 11:03:11 +0100 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> 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 include/linux/highmem.h | 1
4 files changed, 50 insertions(+), 3 deletions(-) 4 files changed, 50 insertions(+), 3 deletions(-)
Index: linux-stable/arch/arm/Kconfig --- a/arch/arm/Kconfig
=================================================================== +++ b/arch/arm/Kconfig
--- linux-stable.orig/arch/arm/Kconfig
+++ linux-stable/arch/arm/Kconfig
@@ -1704,7 +1704,7 @@ config HAVE_ARCH_PFN_VALID @@ -1704,7 +1704,7 @@ config HAVE_ARCH_PFN_VALID
config HIGHMEM config HIGHMEM
@ -24,10 +22,8 @@ Index: linux-stable/arch/arm/Kconfig
help help
The address space of ARM processors is only 4 Gigabytes large The address space of ARM processors is only 4 Gigabytes large
and it has to accommodate user address space, kernel address and it has to accommodate user address space, kernel address
Index: 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
--- linux-stable.orig/arch/arm/include/asm/switch_to.h
+++ linux-stable/arch/arm/include/asm/switch_to.h
@@ -3,6 +3,14 @@ @@ -3,6 +3,14 @@
#include <linux/thread_info.h> #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)); \ last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
} while (0) } while (0)
Index: linux-stable/arch/arm/mm/highmem.c --- a/arch/arm/mm/highmem.c
=================================================================== +++ b/arch/arm/mm/highmem.c
--- linux-stable.orig/arch/arm/mm/highmem.c
+++ linux-stable/arch/arm/mm/highmem.c
@@ -38,6 +38,7 @@ EXPORT_SYMBOL(kunmap); @@ -38,6 +38,7 @@ EXPORT_SYMBOL(kunmap);
void *kmap_atomic(struct page *page) void *kmap_atomic(struct page *page)
@ -135,10 +129,8 @@ Index: linux-stable/arch/arm/mm/highmem.c
+ } + }
+} +}
+#endif +#endif
Index: linux-stable/include/linux/highmem.h --- a/include/linux/highmem.h
=================================================================== +++ b/include/linux/highmem.h
--- linux-stable.orig/include/linux/highmem.h
+++ linux-stable/include/linux/highmem.h
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/uaccess.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 Subject: arm-preempt-lazy-support.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 31 Oct 2012 12:04:11 +0100 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> 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 ++- arch/arm/kernel/signal.c | 3 ++-
5 files changed, 18 insertions(+), 3 deletions(-) 5 files changed, 18 insertions(+), 3 deletions(-)
Index: linux-stable/arch/arm/Kconfig --- a/arch/arm/Kconfig
=================================================================== +++ b/arch/arm/Kconfig
--- linux-stable.orig/arch/arm/Kconfig @@ -47,6 +47,7 @@ config ARM
+++ linux-stable/arch/arm/Kconfig
@@ -48,6 +48,7 @@ config ARM
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_OPROFILE if (HAVE_PERF_EVENTS) select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
select 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_REGS_AND_STACK_ACCESS_API
select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS
select HAVE_UID16 select HAVE_UID16
Index: 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
--- linux-stable.orig/arch/arm/include/asm/thread_info.h
+++ linux-stable/arch/arm/include/asm/thread_info.h
@@ -50,6 +50,7 @@ struct cpu_context_save { @@ -50,6 +50,7 @@ struct cpu_context_save {
struct thread_info { struct thread_info {
unsigned long flags; /* low level flags */ 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_TRACE 8
#define TIF_SYSCALL_AUDIT 9 #define TIF_SYSCALL_AUDIT 9
#define TIF_SYSCALL_TRACEPOINT 10 #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_SIGPENDING (1 << TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) #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_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
#define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT) #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
Index: linux-stable/arch/arm/kernel/asm-offsets.c --- a/arch/arm/kernel/asm-offsets.c
=================================================================== +++ b/arch/arm/kernel/asm-offsets.c
--- linux-stable.orig/arch/arm/kernel/asm-offsets.c
+++ linux-stable/arch/arm/kernel/asm-offsets.c
@@ -53,6 +53,7 @@ int main(void) @@ -53,6 +53,7 @@ int main(void)
BLANK(); BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 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_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
DEFINE(TI_TASK, offsetof(struct thread_info, task)); DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain)); DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain));
Index: linux-stable/arch/arm/kernel/entry-armv.S --- a/arch/arm/kernel/entry-armv.S
=================================================================== +++ b/arch/arm/kernel/entry-armv.S
--- linux-stable.orig/arch/arm/kernel/entry-armv.S
+++ linux-stable/arch/arm/kernel/entry-armv.S
@@ -204,11 +204,18 @@ __irq_svc: @@ -204,11 +204,18 @@ __irq_svc:
#ifdef CONFIG_PREEMPT #ifdef CONFIG_PREEMPT
get_thread_info tsk get_thread_info tsk
@ -98,11 +90,9 @@ Index: linux-stable/arch/arm/kernel/entry-armv.S
moveq pc, r8 @ go again moveq pc, r8 @ go again
b 1b b 1b
#endif #endif
Index: linux-stable/arch/arm/kernel/signal.c --- a/arch/arm/kernel/signal.c
=================================================================== +++ b/arch/arm/kernel/signal.c
--- linux-stable.orig/arch/arm/kernel/signal.c @@ -584,7 +584,8 @@ asmlinkage int
+++ linux-stable/arch/arm/kernel/signal.c
@@ -576,7 +576,8 @@ asmlinkage int
do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall) do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
{ {
do { do {

View File

@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt@redhat.com> From: Steven Rostedt <srostedt@redhat.com>
Date: Fri, 3 Jul 2009 08:44:29 -0500 Date: Fri, 3 Jul 2009 08:44:29 -0500
Subject: ata: Do not disable interrupts in ide code for preempt-rt 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. Use the local_irq_*_nort variants.
@ -13,10 +13,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/ata/libata-sff.c | 12 ++++++------ drivers/ata/libata-sff.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-) 1 file changed, 6 insertions(+), 6 deletions(-)
Index: linux-stable/drivers/ata/libata-sff.c --- a/drivers/ata/libata-sff.c
=================================================================== +++ b/drivers/ata/libata-sff.c
--- linux-stable.orig/drivers/ata/libata-sff.c
+++ linux-stable/drivers/ata/libata-sff.c
@@ -678,9 +678,9 @@ unsigned int ata_sff_data_xfer_noirq(str @@ -678,9 +678,9 @@ unsigned int ata_sff_data_xfer_noirq(str
unsigned long flags; unsigned long flags;
unsigned int consumed; unsigned int consumed;

View File

@ -1,7 +1,7 @@
Subject: block: Shorten interrupt disabled regions Subject: block: Shorten interrupt disabled regions
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 22 Jun 2011 19:47:02 +0200 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 Moving the blk_sched_flush_plug() call out of the interrupt/preempt
disabled region in the scheduler allows us to replace 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 ++---------- block/blk-core.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-) 1 file changed, 2 insertions(+), 10 deletions(-)
Index: linux-stable/block/blk-core.c --- a/block/blk-core.c
=================================================================== +++ b/block/blk-core.c
--- linux-stable.orig/block/blk-core.c
+++ linux-stable/block/blk-core.c
@@ -2907,7 +2907,7 @@ static void queue_unplugged(struct reque @@ -2907,7 +2907,7 @@ static void queue_unplugged(struct reque
blk_run_queue_async(q); blk_run_queue_async(q);
else else

View File

@ -1,7 +1,7 @@
Subject: block: Use cpu_chill() for retry loops Subject: block: Use cpu_chill() for retry loops
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 20 Dec 2012 18:28:26 +0100 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 Retry loops on RT might loop forever when the modifying side was
preempted. Steven also observed a live lock when there was a 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 +++-- block/blk-ioc.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-) 1 file changed, 3 insertions(+), 2 deletions(-)
Index: linux-stable/block/blk-ioc.c --- a/block/blk-ioc.c
=================================================================== +++ b/block/blk-ioc.c
--- linux-stable.orig/block/blk-ioc.c
+++ linux-stable/block/blk-ioc.c
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/bootmem.h> /* for max_pfn/max_low_pfn */ #include <linux/bootmem.h> /* for max_pfn/max_low_pfn */

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:58 -0500 Date: Fri, 3 Jul 2009 08:29:58 -0500
Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT 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: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 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 ++++++++++++++ include/asm-generic/bug.h | 14 ++++++++++++++
1 file changed, 14 insertions(+) 1 file changed, 14 insertions(+)
Index: linux-stable/include/asm-generic/bug.h --- a/include/asm-generic/bug.h
=================================================================== +++ b/include/asm-generic/bug.h
--- linux-stable.orig/include/asm-generic/bug.h
+++ linux-stable/include/asm-generic/bug.h
@@ -202,6 +202,20 @@ extern void warn_slowpath_null(const cha @@ -202,6 +202,20 @@ extern void warn_slowpath_null(const cha
# define WARN_ON_SMP(x) ({0;}) # define WARN_ON_SMP(x) ({0;})
#endif #endif

View File

@ -1,7 +1,7 @@
From: Benedikt Spranger <b.spranger@linutronix.de> From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100 Date: Mon, 8 Mar 2010 18:57:04 +0100
Subject: clocksource: TCLIB: Allow higher clock rates for clock events 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. As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution. 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 ++++++++++-- drivers/misc/Kconfig | 12 ++++++++++--
2 files changed, 26 insertions(+), 16 deletions(-) 2 files changed, 26 insertions(+), 16 deletions(-)
Index: linux-stable/drivers/clocksource/tcb_clksrc.c --- a/drivers/clocksource/tcb_clksrc.c
=================================================================== +++ b/drivers/clocksource/tcb_clksrc.c
--- linux-stable.orig/drivers/clocksource/tcb_clksrc.c
+++ linux-stable/drivers/clocksource/tcb_clksrc.c
@@ -23,8 +23,7 @@ @@ -23,8 +23,7 @@
* this 32 bit free-running counter. the second channel is not used. * 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; return 0;
} }
arch_initcall(tcb_clksrc_init); arch_initcall(tcb_clksrc_init);
Index: linux-stable/drivers/misc/Kconfig --- a/drivers/misc/Kconfig
=================================================================== +++ b/drivers/misc/Kconfig
--- linux-stable.orig/drivers/misc/Kconfig
+++ linux-stable/drivers/misc/Kconfig
@@ -78,8 +78,7 @@ config ATMEL_TCB_CLKSRC @@ -78,8 +78,7 @@ config ATMEL_TCB_CLKSRC
are combined to make a single 32-bit timer. are combined to make a single 32-bit timer.

View File

@ -1,7 +1,7 @@
Subject: completion: Use simple wait queues Subject: completion: Use simple wait queues
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 11 Jan 2013 11:23:51 +0100 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 Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the 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 +++++++++++++++++++++++++------------------- kernel/sched/core.c | 44 +++++++++++++++++++++++++-------------------
3 files changed, 30 insertions(+), 23 deletions(-) 3 files changed, 30 insertions(+), 23 deletions(-)
Index: linux-stable/include/linux/completion.h --- a/include/linux/completion.h
=================================================================== +++ b/include/linux/completion.h
--- linux-stable.orig/include/linux/completion.h
+++ linux-stable/include/linux/completion.h
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
* See kernel/sched.c for details. * See kernel/sched.c for details.
*/ */
@ -50,10 +48,8 @@ Index: linux-stable/include/linux/completion.h
} }
extern void wait_for_completion(struct completion *); extern void wait_for_completion(struct completion *);
Index: linux-stable/include/linux/uprobes.h --- a/include/linux/uprobes.h
=================================================================== +++ b/include/linux/uprobes.h
--- linux-stable.orig/include/linux/uprobes.h
+++ linux-stable/include/linux/uprobes.h
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
#include <linux/errno.h> #include <linux/errno.h>
@ -62,11 +58,9 @@ Index: linux-stable/include/linux/uprobes.h
struct vm_area_struct; struct vm_area_struct;
struct mm_struct; struct mm_struct;
Index: linux-stable/kernel/sched/core.c --- a/kernel/sched/core.c
=================================================================== +++ b/kernel/sched/core.c
--- linux-stable.orig/kernel/sched/core.c @@ -2988,7 +2988,10 @@ void migrate_disable(void)
+++ linux-stable/kernel/sched/core.c
@@ -3028,7 +3028,10 @@ void migrate_disable(void)
} }
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG
@ -78,7 +72,7 @@ Index: linux-stable/kernel/sched/core.c
#endif #endif
preempt_disable(); preempt_disable();
@@ -3060,7 +3063,10 @@ void migrate_enable(void) @@ -3020,7 +3023,10 @@ void migrate_enable(void)
} }
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG
@ -90,7 +84,7 @@ Index: linux-stable/kernel/sched/core.c
#endif #endif
WARN_ON_ONCE(p->migrate_disable <= 0); 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; unsigned long flags;
@ -104,7 +98,7 @@ Index: linux-stable/kernel/sched/core.c
} }
EXPORT_SYMBOL(complete); 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; unsigned long flags;
@ -118,7 +112,7 @@ Index: linux-stable/kernel/sched/core.c
} }
EXPORT_SYMBOL(complete_all); 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) long (*action)(long), long timeout, int state)
{ {
if (!x->done) { if (!x->done) {
@ -144,7 +138,7 @@ Index: linux-stable/kernel/sched/core.c
if (!x->done) if (!x->done)
return timeout; return timeout;
} }
@@ -3574,9 +3580,9 @@ __wait_for_common(struct completion *x, @@ -3534,9 +3540,9 @@ __wait_for_common(struct completion *x,
{ {
might_sleep(); might_sleep();
@ -156,7 +150,7 @@ Index: linux-stable/kernel/sched/core.c
return timeout; 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; unsigned long flags;
int ret = 1; int ret = 1;
@ -171,7 +165,7 @@ Index: linux-stable/kernel/sched/core.c
return ret; return ret;
} }
EXPORT_SYMBOL(try_wait_for_completion); 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; unsigned long flags;
int ret = 1; int ret = 1;

View File

@ -1,18 +1,16 @@
Subject: cond-resched-lock-rt-tweak.patch Subject: cond-resched-lock-rt-tweak.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 22:51:33 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
include/linux/sched.h | 2 +- include/linux/sched.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/include/linux/sched.h --- a/include/linux/sched.h
=================================================================== +++ b/include/linux/sched.h
--- linux-stable.orig/include/linux/sched.h @@ -2486,7 +2486,7 @@ extern int _cond_resched(void);
+++ linux-stable/include/linux/sched.h
@@ -2483,7 +2483,7 @@ extern int _cond_resched(void);
extern int __cond_resched_lock(spinlock_t *lock); extern int __cond_resched_lock(spinlock_t *lock);

View File

@ -1,7 +1,7 @@
Subject: cond-resched-softirq-fix.patch Subject: cond-resched-softirq-fix.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Jul 2011 09:56:44 +0200 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> 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 ++ kernel/sched/core.c | 2 ++
2 files changed, 6 insertions(+) 2 files changed, 6 insertions(+)
Index: linux-stable/include/linux/sched.h --- a/include/linux/sched.h
=================================================================== +++ b/include/linux/sched.h
--- linux-stable.orig/include/linux/sched.h @@ -2497,12 +2497,16 @@ extern int __cond_resched_lock(spinlock_
+++ linux-stable/include/linux/sched.h
@@ -2494,12 +2494,16 @@ extern int __cond_resched_lock(spinlock_
__cond_resched_lock(lock); \ __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 * Does a critical section need to be broken due to another
Index: linux-stable/kernel/sched/core.c --- a/kernel/sched/core.c
=================================================================== +++ b/kernel/sched/core.c
--- linux-stable.orig/kernel/sched/core.c @@ -4485,6 +4485,7 @@ int __cond_resched_lock(spinlock_t *lock
+++ linux-stable/kernel/sched/core.c
@@ -4443,6 +4443,7 @@ int __cond_resched_lock(spinlock_t *lock
} }
EXPORT_SYMBOL(__cond_resched_lock); EXPORT_SYMBOL(__cond_resched_lock);
@ -42,7 +38,7 @@ Index: linux-stable/kernel/sched/core.c
int __sched __cond_resched_softirq(void) int __sched __cond_resched_softirq(void)
{ {
BUG_ON(!in_softirq()); 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; return 0;
} }
EXPORT_SYMBOL(__cond_resched_softirq); 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 Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
From: Steven Rostedt <rostedt@goodmis.org> From: Steven Rostedt <rostedt@goodmis.org>
Date: Fri, 02 Mar 2012 10:36:57 -0500 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 Tasks can block on hotplug.lock in pin_current_cpu(), but their state
might be != RUNNING. So the mutex wakeup will set the 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 ++++++++++++++++++++++++++--------- kernel/cpu.c | 35 ++++++++++++++++++++++++++---------
1 file changed, 26 insertions(+), 9 deletions(-) 1 file changed, 26 insertions(+), 9 deletions(-)
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -51,7 +51,12 @@ static int cpu_hotplug_disabled; @@ -51,7 +51,12 @@ static int cpu_hotplug_disabled;
static struct { static struct {

View File

@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt@redhat.com> From: Steven Rostedt <srostedt@redhat.com>
Date: Mon, 16 Jul 2012 08:07:43 +0000 Date: Mon, 16 Jul 2012 08:07:43 +0000
Subject: cpu/rt: Rework cpu down for PREEMPT_RT 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 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 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 ++++++++++++++++- kernel/sched/core.c | 82 ++++++++++++++++-
3 files changed, 284 insertions(+), 45 deletions(-) 3 files changed, 284 insertions(+), 45 deletions(-)
Index: linux-stable/include/linux/sched.h --- a/include/linux/sched.h
=================================================================== +++ b/include/linux/sched.h
--- linux-stable.orig/include/linux/sched.h @@ -1811,6 +1811,10 @@ extern void do_set_cpus_allowed(struct t
+++ linux-stable/include/linux/sched.h
@@ -1808,6 +1808,10 @@ extern void do_set_cpus_allowed(struct t
extern int set_cpus_allowed_ptr(struct task_struct *p, extern int set_cpus_allowed_ptr(struct task_struct *p,
const struct cpumask *new_mask); const struct cpumask *new_mask);
@ -70,7 +68,7 @@ Index: linux-stable/include/linux/sched.h
#else #else
static inline void do_set_cpus_allowed(struct task_struct *p, static inline void do_set_cpus_allowed(struct task_struct *p,
const struct cpumask *new_mask) 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 -EINVAL;
return 0; return 0;
} }
@ -80,10 +78,8 @@ Index: linux-stable/include/linux/sched.h
#endif #endif
#ifdef CONFIG_NO_HZ_COMMON #ifdef CONFIG_NO_HZ_COMMON
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -51,12 +51,7 @@ static int cpu_hotplug_disabled; @@ -51,12 +51,7 @@ static int cpu_hotplug_disabled;
static struct { static struct {
@ -445,11 +441,9 @@ Index: linux-stable/kernel/cpu.c
err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu)); err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
if (err) { if (err) {
/* CPU didn't die: tell everyone. Can't complain. */ /* CPU didn't die: tell everyone. Can't complain. */
Index: linux-stable/kernel/sched/core.c --- a/kernel/sched/core.c
=================================================================== +++ b/kernel/sched/core.c
--- linux-stable.orig/kernel/sched/core.c @@ -2935,7 +2935,7 @@ void migrate_disable(void)
+++ linux-stable/kernel/sched/core.c
@@ -2963,7 +2963,7 @@ void migrate_disable(void)
{ {
struct task_struct *p = current; struct task_struct *p = current;
@ -458,7 +452,7 @@ Index: linux-stable/kernel/sched/core.c
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG
p->migrate_disable_atomic++; p->migrate_disable_atomic++;
#endif #endif
@@ -2994,7 +2994,7 @@ void migrate_enable(void) @@ -2966,7 +2966,7 @@ void migrate_enable(void)
unsigned long flags; unsigned long flags;
struct rq *rq; struct rq *rq;
@ -467,7 +461,7 @@ Index: linux-stable/kernel/sched/core.c
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG
p->migrate_disable_atomic--; p->migrate_disable_atomic--;
#endif #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); cpumask_copy(&p->cpus_allowed, new_mask);
} }

View File

@ -1,17 +1,15 @@
Subject: cpu-rt-variants.patch Subject: cpu-rt-variants.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 15:42:38 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
include/linux/smp.h | 8 ++++++++ include/linux/smp.h | 8 ++++++++
1 file changed, 8 insertions(+) 1 file changed, 8 insertions(+)
Index: linux-stable/include/linux/smp.h --- a/include/linux/smp.h
=================================================================== +++ b/include/linux/smp.h
--- linux-stable.orig/include/linux/smp.h
+++ linux-stable/include/linux/smp.h
@@ -223,6 +223,14 @@ static inline void kick_all_cpus_sync(vo @@ -223,6 +223,14 @@ static inline void kick_all_cpus_sync(vo
#define get_cpu() ({ preempt_disable(); smp_processor_id(); }) #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
#define put_cpu() preempt_enable() #define put_cpu() preempt_enable()

View File

@ -1,7 +1,7 @@
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100 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 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. 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 + lib/Kconfig | 1 +
2 files changed, 2 insertions(+), 1 deletion(-) 2 files changed, 2 insertions(+), 1 deletion(-)
Index: linux-stable/arch/x86/Kconfig --- a/arch/x86/Kconfig
=================================================================== +++ b/arch/x86/Kconfig
--- linux-stable.orig/arch/x86/Kconfig
+++ linux-stable/arch/x86/Kconfig
@@ -799,7 +799,7 @@ config IOMMU_HELPER @@ -799,7 +799,7 @@ config IOMMU_HELPER
config MAXSMP config MAXSMP
bool "Enable Maximum number of SMP Processors and NUMA Nodes" bool "Enable Maximum number of SMP Processors and NUMA Nodes"
@ -25,10 +23,8 @@ Index: linux-stable/arch/x86/Kconfig
---help--- ---help---
Enable maximum number of CPUS and NUMA Nodes for this architecture. Enable maximum number of CPUS and NUMA Nodes for this architecture.
If unsure, say N. If unsure, say N.
Index: linux-stable/lib/Kconfig --- a/lib/Kconfig
=================================================================== +++ b/lib/Kconfig
--- linux-stable.orig/lib/Kconfig
+++ linux-stable/lib/Kconfig
@@ -315,6 +315,7 @@ config CHECK_SIGNATURE @@ -315,6 +315,7 @@ config CHECK_SIGNATURE
config CPUMASK_OFFSTACK config CPUMASK_OFFSTACK

View File

@ -1,17 +1,15 @@
Subject: debugobjects-rt.patch Subject: debugobjects-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:41:35 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
lib/debugobjects.c | 5 ++++- lib/debugobjects.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-) 1 file changed, 4 insertions(+), 1 deletion(-)
Index: linux-stable/lib/debugobjects.c --- a/lib/debugobjects.c
=================================================================== +++ b/lib/debugobjects.c
--- linux-stable.orig/lib/debugobjects.c
+++ linux-stable/lib/debugobjects.c
@@ -308,7 +308,10 @@ __debug_object_init(void *addr, struct d @@ -308,7 +308,10 @@ __debug_object_init(void *addr, struct d
struct debug_obj *obj; struct debug_obj *obj;
unsigned long flags; unsigned long flags;

View File

@ -1,7 +1,7 @@
Subject: dm: Make rt aware Subject: dm: Make rt aware
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 14 Nov 2011 23:06:09 +0100 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 Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
interrupts legitimately enabled here as we cant deadlock against the 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 ++-- drivers/md/dm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-stable/drivers/md/dm.c --- a/drivers/md/dm.c
=================================================================== +++ b/drivers/md/dm.c
--- linux-stable.orig/drivers/md/dm.c @@ -1713,14 +1713,14 @@ static void dm_request_fn(struct request
+++ linux-stable/drivers/md/dm.c
@@ -1706,14 +1706,14 @@ static void dm_request_fn(struct request
if (map_request(ti, clone, md)) if (map_request(ti, clone, md))
goto requeued; goto requeued;

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:24 -0500 Date: Fri, 3 Jul 2009 08:29:24 -0500
Subject: drivers/net: Use disable_irq_nosync() in 8139too 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 Use disable_irq_nosync() instead of disable_irq() as this might be
called in atomic context with netpoll. 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 +- drivers/net/ethernet/realtek/8139too.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/drivers/net/ethernet/realtek/8139too.c --- a/drivers/net/ethernet/realtek/8139too.c
=================================================================== +++ b/drivers/net/ethernet/realtek/8139too.c
--- linux-stable.orig/drivers/net/ethernet/realtek/8139too.c
+++ linux-stable/drivers/net/ethernet/realtek/8139too.c
@@ -2213,7 +2213,7 @@ static void rtl8139_poll_controller(stru @@ -2213,7 +2213,7 @@ static void rtl8139_poll_controller(stru
struct rtl8139_private *tp = netdev_priv(dev); struct rtl8139_private *tp = netdev_priv(dev);
const int irq = tp->pci_dev->irq; const int irq = tp->pci_dev->irq;

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 20 Jun 2009 11:36:54 +0200 Date: Sat, 20 Jun 2009 11:36:54 +0200
Subject: drivers/net: fix livelock issues 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 Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
optimization. The reason is that the softirq thread is rescheduling 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 +----- drivers/net/rionet.c | 6 +-----
7 files changed, 9 insertions(+), 31 deletions(-) 7 files changed, 9 insertions(+), 31 deletions(-)
Index: linux-stable/drivers/net/ethernet/atheros/atl1c/atl1c_main.c --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
=================================================================== +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
--- linux-stable.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c @@ -2206,11 +2206,7 @@ static netdev_tx_t atl1c_xmit_frame(stru
+++ linux-stable/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
@@ -2168,11 +2168,7 @@ static netdev_tx_t atl1c_xmit_frame(stru
} }
tpd_req = atl1c_cal_tpd_req(skb); 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) { if (atl1c_tpd_avail(adapter, type) < tpd_req) {
/* no enough descriptor, just stop queue */ /* no enough descriptor, just stop queue */
Index: linux-stable/drivers/net/ethernet/atheros/atl1e/atl1e_main.c --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
=================================================================== +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
--- linux-stable.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c @@ -1838,8 +1838,7 @@ static netdev_tx_t atl1e_xmit_frame(stru
+++ linux-stable/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
@@ -1799,8 +1799,7 @@ static netdev_tx_t atl1e_xmit_frame(stru
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
tpd_req = atl1e_cal_tdp_req(skb); 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) { if (atl1e_tpd_avail(adapter) < tpd_req) {
/* no enough descriptor, just stop queue */ /* no enough descriptor, just stop queue */
Index: 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
--- linux-stable.orig/drivers/net/ethernet/chelsio/cxgb/sge.c
+++ linux-stable/drivers/net/ethernet/chelsio/cxgb/sge.c
@@ -1665,8 +1665,7 @@ static int t1_sge_tx(struct sk_buff *skb @@ -1665,8 +1665,7 @@ static int t1_sge_tx(struct sk_buff *skb
struct cmdQ *q = &sge->cmdQ[qid]; struct cmdQ *q = &sge->cmdQ[qid];
unsigned int credits, pidx, genbit, count, use_sched_skb = 0; 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); reclaim_completed_tx(sge, q);
Index: linux-stable/drivers/net/ethernet/neterion/s2io.c --- a/drivers/net/ethernet/neterion/s2io.c
=================================================================== +++ b/drivers/net/ethernet/neterion/s2io.c
--- linux-stable.orig/drivers/net/ethernet/neterion/s2io.c
+++ linux-stable/drivers/net/ethernet/neterion/s2io.c
@@ -4089,12 +4089,7 @@ static netdev_tx_t s2io_xmit(struct sk_b @@ -4089,12 +4089,7 @@ static netdev_tx_t s2io_xmit(struct sk_b
[skb->priority & (MAX_TX_FIFOS - 1)]; [skb->priority & (MAX_TX_FIFOS - 1)];
fifo = &mac_control->fifos[queue]; fifo = &mac_control->fifos[queue];
@ -85,10 +77,8 @@ Index: linux-stable/drivers/net/ethernet/neterion/s2io.c
if (sp->config.multiq) { if (sp->config.multiq) {
if (__netif_subqueue_stopped(dev, fifo->fifo_no)) { if (__netif_subqueue_stopped(dev, fifo->fifo_no)) {
Index: 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
--- 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
@@ -2109,10 +2109,8 @@ static int pch_gbe_xmit_frame(struct sk_ @@ -2109,10 +2109,8 @@ static int pch_gbe_xmit_frame(struct sk_
struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring; struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
unsigned long flags; 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))) { if (unlikely(!PCH_GBE_DESC_UNUSED(tx_ring))) {
netif_stop_queue(netdev); netif_stop_queue(netdev);
spin_unlock_irqrestore(&tx_ring->tx_lock, flags); spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
Index: linux-stable/drivers/net/ethernet/tehuti/tehuti.c --- a/drivers/net/ethernet/tehuti/tehuti.c
=================================================================== +++ b/drivers/net/ethernet/tehuti/tehuti.c
--- linux-stable.orig/drivers/net/ethernet/tehuti/tehuti.c
+++ linux-stable/drivers/net/ethernet/tehuti/tehuti.c
@@ -1629,13 +1629,8 @@ static netdev_tx_t bdx_tx_transmit(struc @@ -1629,13 +1629,8 @@ static netdev_tx_t bdx_tx_transmit(struc
unsigned long flags; unsigned long flags;
@ -122,10 +110,8 @@ Index: linux-stable/drivers/net/ethernet/tehuti/tehuti.c
/* build tx descriptor */ /* build tx descriptor */
BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */ BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */
Index: linux-stable/drivers/net/rionet.c --- a/drivers/net/rionet.c
=================================================================== +++ b/drivers/net/rionet.c
--- linux-stable.orig/drivers/net/rionet.c
+++ linux-stable/drivers/net/rionet.c
@@ -174,11 +174,7 @@ static int rionet_start_xmit(struct sk_b @@ -174,11 +174,7 @@ static int rionet_start_xmit(struct sk_b
unsigned long flags; unsigned long flags;
int add_num = 1; int add_num = 1;

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Apr 2010 20:20:57 +0200 Date: Thu, 1 Apr 2010 20:20:57 +0200
Subject: drivers: net: gianfar: Make RT aware 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 The adjust_link() disables interrupts before taking the queue
locks. On RT those locks are converted to "sleeping" locks and 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 ++++---- drivers/net/ethernet/freescale/gianfar.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-) 1 file changed, 4 insertions(+), 4 deletions(-)
Index: linux-stable/drivers/net/ethernet/freescale/gianfar.c --- a/drivers/net/ethernet/freescale/gianfar.c
=================================================================== +++ b/drivers/net/ethernet/freescale/gianfar.c
--- linux-stable.orig/drivers/net/ethernet/freescale/gianfar.c
+++ linux-stable/drivers/net/ethernet/freescale/gianfar.c
@@ -1674,7 +1674,7 @@ void stop_gfar(struct net_device *dev) @@ -1674,7 +1674,7 @@ void stop_gfar(struct net_device *dev)

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:18 -0500 Date: Fri, 3 Jul 2009 08:30:18 -0500
Subject: drivers/net: tulip_remove_one needs to call pci_disable_device() 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. 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 + drivers/net/ethernet/dec/tulip/tulip_core.c | 1 +
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
Index: 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
--- linux-stable.orig/drivers/net/ethernet/dec/tulip/tulip_core.c
+++ linux-stable/drivers/net/ethernet/dec/tulip/tulip_core.c
@@ -1943,6 +1943,7 @@ static void tulip_remove_one(struct pci_ @@ -1943,6 +1943,7 @@ static void tulip_remove_one(struct pci_
pci_iounmap(pdev, tp->base_addr); pci_iounmap(pdev, tp->base_addr);
free_netdev (dev); free_netdev (dev);

View File

@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt@goodmis.org> From: Steven Rostedt <rostedt@goodmis.org>
Date: Fri, 3 Jul 2009 08:30:00 -0500 Date: Fri, 3 Jul 2009 08:30:00 -0500
Subject: drivers/net: vortex fix locking issues 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... 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> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Index: linux-stable/drivers/net/ethernet/3com/3c59x.c --- a/drivers/net/ethernet/3com/3c59x.c
=================================================================== +++ b/drivers/net/ethernet/3com/3c59x.c
--- linux-stable.orig/drivers/net/ethernet/3com/3c59x.c
+++ linux-stable/drivers/net/ethernet/3com/3c59x.c
@@ -842,9 +842,9 @@ static void poll_vortex(struct net_devic @@ -842,9 +842,9 @@ static void poll_vortex(struct net_devic
{ {
struct vortex_private *vp = netdev_priv(dev); struct vortex_private *vp = netdev_priv(dev);

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:30 -0500 Date: Fri, 3 Jul 2009 08:29:30 -0500
Subject: drivers: random: Reduce preempt disabled region 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. 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 +++++---- drivers/char/random.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-) 1 file changed, 5 insertions(+), 4 deletions(-)
Index: linux-stable/drivers/char/random.c --- a/drivers/char/random.c
=================================================================== +++ b/drivers/char/random.c
--- linux-stable.orig/drivers/char/random.c
+++ linux-stable/drivers/char/random.c
@@ -676,9 +676,12 @@ static void add_timer_randomness(struct @@ -676,9 +676,12 @@ static void add_timer_randomness(struct
preempt_disable(); preempt_disable();
/* if over the trickle threshold, use only 1 in 4096 samples */ /* if over the trickle threshold, use only 1 in 4096 samples */

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:01 -0500 Date: Fri, 3 Jul 2009 08:30:01 -0500
Subject: serial: 8250: Call flush_to_ldisc when the irq is threaded 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> 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 +++++- drivers/tty/tty_buffer.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-) 1 file changed, 5 insertions(+), 1 deletion(-)
Index: linux-stable/drivers/tty/tty_buffer.c --- a/drivers/tty/tty_buffer.c
=================================================================== +++ b/drivers/tty/tty_buffer.c
--- linux-stable.orig/drivers/tty/tty_buffer.c
+++ linux-stable/drivers/tty/tty_buffer.c
@@ -517,10 +517,15 @@ void tty_flip_buffer_push(struct tty_por @@ -517,10 +517,15 @@ void tty_flip_buffer_push(struct tty_por
buf->tail->commit = buf->tail->used; buf->tail->commit = buf->tail->used;
spin_unlock_irqrestore(&buf->lock, flags); spin_unlock_irqrestore(&buf->lock, flags);

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:01 -0500 Date: Fri, 3 Jul 2009 08:30:01 -0500
Subject: serial: 8250: Clean up the locking for -rt 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: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 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 +++++---------- drivers/tty/serial/8250/8250_core.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-) 1 file changed, 5 insertions(+), 10 deletions(-)
Index: 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
--- linux-stable.orig/drivers/tty/serial/8250/8250_core.c
+++ linux-stable/drivers/tty/serial/8250/8250_core.c
@@ -2860,14 +2860,10 @@ serial8250_console_write(struct console @@ -2860,14 +2860,10 @@ serial8250_console_write(struct console
touch_nmi_watchdog(); touch_nmi_watchdog();

View File

@ -1,17 +1,15 @@
Subject: drivers-tty-fix-omap-lock-crap.patch Subject: drivers-tty-fix-omap-lock-crap.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 28 Jul 2011 13:32:57 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
drivers/tty/serial/omap-serial.c | 12 ++++-------- drivers/tty/serial/omap-serial.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-) 1 file changed, 4 insertions(+), 8 deletions(-)
Index: linux-stable/drivers/tty/serial/omap-serial.c --- a/drivers/tty/serial/omap-serial.c
=================================================================== +++ b/drivers/tty/serial/omap-serial.c
--- linux-stable.orig/drivers/tty/serial/omap-serial.c
+++ linux-stable/drivers/tty/serial/omap-serial.c
@@ -1169,13 +1169,10 @@ serial_omap_console_write(struct console @@ -1169,13 +1169,10 @@ serial_omap_console_write(struct console
pm_runtime_get_sync(up->dev); pm_runtime_get_sync(up->dev);

View File

@ -1,17 +1,15 @@
Subject: drivers-tty-pl011-irq-disable-madness.patch Subject: drivers-tty-pl011-irq-disable-madness.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 08 Jan 2013 21:36:51 +0100 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
drivers/tty/serial/amba-pl011.c | 15 ++++++++++----- drivers/tty/serial/amba-pl011.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-) 1 file changed, 10 insertions(+), 5 deletions(-)
Index: linux-stable/drivers/tty/serial/amba-pl011.c --- a/drivers/tty/serial/amba-pl011.c
=================================================================== +++ b/drivers/tty/serial/amba-pl011.c
--- linux-stable.orig/drivers/tty/serial/amba-pl011.c
+++ linux-stable/drivers/tty/serial/amba-pl011.c
@@ -1923,13 +1923,19 @@ pl011_console_write(struct console *co, @@ -1923,13 +1923,19 @@ pl011_console_write(struct console *co,
clk_enable(uap->clk); 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 25 Apr 2013 18:12:52 +0200 Date: Thu, 25 Apr 2013 18:12:52 +0200
Subject: [PATCH] drm/i915: drop trace_i915_gem_ring_dispatch on rt 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: 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 ++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
Index: 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
--- linux-stable.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ linux-stable/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1071,7 +1071,9 @@ i915_gem_do_execbuffer(struct drm_device @@ -1071,7 +1071,9 @@ i915_gem_do_execbuffer(struct drm_device
goto err; goto err;
} }

View File

@ -1,7 +1,7 @@
Subject: early-printk-consolidate.patch Subject: early-printk-consolidate.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 23 Jul 2011 11:04:08 +0200 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> 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 +++++++- arch/sparc/kernel/setup_64.c | 8 +++++++-
2 files changed, 8 insertions(+), 1 deletion(-) 2 files changed, 8 insertions(+), 1 deletion(-)
Index: linux-stable/arch/sparc/kernel/setup_32.c --- a/arch/sparc/kernel/setup_32.c
=================================================================== +++ b/arch/sparc/kernel/setup_32.c
--- linux-stable.orig/arch/sparc/kernel/setup_32.c
+++ linux-stable/arch/sparc/kernel/setup_32.c
@@ -309,6 +309,7 @@ void __init setup_arch(char **cmdline_p) @@ -309,6 +309,7 @@ void __init setup_arch(char **cmdline_p)
boot_flags_init(*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); register_console(&prom_early_console);
printk("ARCH: "); printk("ARCH: ");
Index: linux-stable/arch/sparc/kernel/setup_64.c --- a/arch/sparc/kernel/setup_64.c
=================================================================== +++ b/arch/sparc/kernel/setup_64.c
--- linux-stable.orig/arch/sparc/kernel/setup_64.c
+++ linux-stable/arch/sparc/kernel/setup_64.c
@@ -551,6 +551,12 @@ static void __init init_sparc64_elf_hwca @@ -551,6 +551,12 @@ static void __init init_sparc64_elf_hwca
pause_patch(); pause_patch();
} }

View File

@ -1,17 +1,15 @@
Subject: epoll.patch Subject: epoll.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 08 Jul 2011 16:35:35 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
fs/eventpoll.c | 4 ++-- fs/eventpoll.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-stable/fs/eventpoll.c --- a/fs/eventpoll.c
=================================================================== +++ b/fs/eventpoll.c
--- linux-stable.orig/fs/eventpoll.c
+++ linux-stable/fs/eventpoll.c
@@ -500,12 +500,12 @@ static int ep_poll_wakeup_proc(void *pri @@ -500,12 +500,12 @@ static int ep_poll_wakeup_proc(void *pri
*/ */
static void ep_poll_safewake(wait_queue_head_t *wq) static void ep_poll_safewake(wait_queue_head_t *wq)

View File

@ -1,7 +1,7 @@
Subject: filemap-fix-up.patch Subject: filemap-fix-up.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 18:56:24 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Wrecked-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> 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 +- mm/filemap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/mm/filemap.c --- a/mm/filemap.c
=================================================================== +++ b/mm/filemap.c
--- linux-stable.orig/mm/filemap.c
+++ linux-stable/mm/filemap.c
@@ -1974,7 +1974,7 @@ size_t iov_iter_copy_from_user_atomic(st @@ -1974,7 +1974,7 @@ size_t iov_iter_copy_from_user_atomic(st
char *kaddr; char *kaddr;
size_t copied; size_t copied;

View File

@ -1,6 +1,6 @@
From: Steven Rostedt <rostedt@goodmis.org> From: Steven Rostedt <rostedt@goodmis.org>
Subject: x86: Do not disable preemption in int3 on 32bit 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 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 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 +++++++++++++++++++++++--------- arch/x86/kernel/traps.c | 32 +++++++++++++++++++++++---------
1 file changed, 23 insertions(+), 9 deletions(-) 1 file changed, 23 insertions(+), 9 deletions(-)
Index: linux-stable/arch/x86/kernel/traps.c --- a/arch/x86/kernel/traps.c
=================================================================== +++ b/arch/x86/kernel/traps.c
--- linux-stable.orig/arch/x86/kernel/traps.c
+++ linux-stable/arch/x86/kernel/traps.c
@@ -85,9 +85,21 @@ static inline void conditional_sti(struc @@ -85,9 +85,21 @@ static inline void conditional_sti(struc
local_irq_enable(); local_irq_enable();
} }

View File

@ -1,17 +1,15 @@
Subject: fs-block-rt-support.patch Subject: fs-block-rt-support.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 14 Jun 2011 17:05:09 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
block/blk-core.c | 2 +- block/blk-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/block/blk-core.c --- a/block/blk-core.c
=================================================================== +++ b/block/blk-core.c
--- linux-stable.orig/block/blk-core.c
+++ linux-stable/block/blk-core.c
@@ -232,7 +232,7 @@ EXPORT_SYMBOL(blk_delay_queue); @@ -232,7 +232,7 @@ EXPORT_SYMBOL(blk_delay_queue);
**/ **/
void blk_start_queue(struct request_queue *q) void blk_start_queue(struct request_queue *q)

View File

@ -1,7 +1,7 @@
Subject: fs: dcache: Use cpu_chill() in trylock loops Subject: fs: dcache: Use cpu_chill() in trylock loops
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 07 Mar 2012 21:00:34 +0100 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 Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system 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 ++++--- fs/namespace.c | 7 ++++---
4 files changed, 10 insertions(+), 7 deletions(-) 4 files changed, 10 insertions(+), 7 deletions(-)
Index: linux-stable/fs/autofs4/autofs_i.h --- a/fs/autofs4/autofs_i.h
=================================================================== +++ b/fs/autofs4/autofs_i.h
--- linux-stable.orig/fs/autofs4/autofs_i.h
+++ linux-stable/fs/autofs4/autofs_i.h
@@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/mount.h> #include <linux/mount.h>
@ -28,10 +26,8 @@ Index: linux-stable/fs/autofs4/autofs_i.h
#include <asm/current.h> #include <asm/current.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
Index: linux-stable/fs/autofs4/expire.c --- a/fs/autofs4/expire.c
=================================================================== +++ b/fs/autofs4/expire.c
--- linux-stable.orig/fs/autofs4/expire.c
+++ linux-stable/fs/autofs4/expire.c
@@ -157,7 +157,7 @@ again: @@ -157,7 +157,7 @@ again:
parent = p->d_parent; parent = p->d_parent;
if (!spin_trylock(&parent->d_lock)) { if (!spin_trylock(&parent->d_lock)) {
@ -41,10 +37,8 @@ Index: linux-stable/fs/autofs4/expire.c
goto relock; goto relock;
} }
spin_unlock(&p->d_lock); spin_unlock(&p->d_lock);
Index: linux-stable/fs/dcache.c --- a/fs/dcache.c
=================================================================== +++ b/fs/dcache.c
--- linux-stable.orig/fs/dcache.c
+++ linux-stable/fs/dcache.c
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
#include <linux/rculist_bl.h> #include <linux/rculist_bl.h>
#include <linux/prefetch.h> #include <linux/prefetch.h>
@ -80,10 +74,8 @@ Index: linux-stable/fs/dcache.c
goto again; goto again;
} }
dentry->d_flags &= ~DCACHE_CANT_MOUNT; dentry->d_flags &= ~DCACHE_CANT_MOUNT;
Index: linux-stable/fs/namespace.c --- a/fs/namespace.c
=================================================================== +++ b/fs/namespace.c
--- linux-stable.orig/fs/namespace.c
+++ linux-stable/fs/namespace.c
@@ -23,6 +23,7 @@ @@ -23,6 +23,7 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/proc_ns.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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 3 Apr 2013 12:43:30 +0200 Date: Wed, 3 Apr 2013 12:43:30 +0200
Subject: [PATCH] fs/fscache: remove spin_lock() from the condition in while() 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 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 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 ++++++++----- fs/fscache/page.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-) 1 file changed, 8 insertions(+), 5 deletions(-)
Index: linux-stable/fs/fscache/page.c --- a/fs/fscache/page.c
=================================================================== +++ b/fs/fscache/page.c
--- linux-stable.orig/fs/fscache/page.c
+++ linux-stable/fs/fscache/page.c
@@ -796,11 +796,13 @@ void fscache_invalidate_writes(struct fs @@ -796,11 +796,13 @@ void fscache_invalidate_writes(struct fs
_enter(""); _enter("");

View File

@ -1,7 +1,7 @@
From: Mike Galbraith <mgalbraith@suse.de> From: Mike Galbraith <mgalbraith@suse.de>
Date: Wed, 11 Jul 2012 22:05:20 +0000 Date: Wed, 11 Jul 2012 22:05:20 +0000
Subject: fs, jbd: pull your plug when waiting for space 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 With an -rt kernel, and a heavy sync IO load, tasks can jam
up on journal locks without unplugging, which can lead to 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 ++ fs/jbd/checkpoint.c | 2 ++
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
Index: linux-stable/fs/jbd/checkpoint.c --- a/fs/jbd/checkpoint.c
=================================================================== +++ b/fs/jbd/checkpoint.c
--- linux-stable.orig/fs/jbd/checkpoint.c
+++ linux-stable/fs/jbd/checkpoint.c
@@ -129,6 +129,8 @@ void __log_wait_for_space(journal_t *jou @@ -129,6 +129,8 @@ void __log_wait_for_space(journal_t *jou
if (journal->j_flags & JFS_ABORT) if (journal->j_flags & JFS_ABORT)
return; return;

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100 Date: Fri, 18 Mar 2011 10:11:25 +0100
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe 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. bit_spin_locks break under RT.
@ -14,10 +14,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/jbd_common.h | 24 ++++++++++++++++++++++++ include/linux/jbd_common.h | 24 ++++++++++++++++++++++++
2 files changed, 34 insertions(+) 2 files changed, 34 insertions(+)
Index: linux-stable/include/linux/buffer_head.h --- a/include/linux/buffer_head.h
=================================================================== +++ b/include/linux/buffer_head.h
--- linux-stable.orig/include/linux/buffer_head.h
+++ linux-stable/include/linux/buffer_head.h
@@ -76,6 +76,11 @@ struct buffer_head { @@ -76,6 +76,11 @@ struct buffer_head {
atomic_t b_count; /* users using this buffer_head */ atomic_t b_count; /* users using this buffer_head */
#ifdef CONFIG_PREEMPT_RT_BASE #ifdef CONFIG_PREEMPT_RT_BASE
@ -42,10 +40,8 @@ Index: linux-stable/include/linux/buffer_head.h
#endif #endif
} }
Index: linux-stable/include/linux/jbd_common.h --- a/include/linux/jbd_common.h
=================================================================== +++ b/include/linux/jbd_common.h
--- linux-stable.orig/include/linux/jbd_common.h
+++ linux-stable/include/linux/jbd_common.h
@@ -39,32 +39,56 @@ static inline struct journal_head *bh2jh @@ -39,32 +39,56 @@ static inline struct journal_head *bh2jh
static inline void jbd_lock_bh_state(struct buffer_head *bh) static inline void jbd_lock_bh_state(struct buffer_head *bh)

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 19 Jul 2009 08:44:27 -0500 Date: Sun, 19 Jul 2009 08:44:27 -0500
Subject: fs: namespace preemption fix 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 On RT we cannot loop with preemption disabled here as
mnt_make_readonly() might have been preempted. We can safely enable 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 ++++- fs/namespace.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-) 1 file changed, 4 insertions(+), 1 deletion(-)
Index: linux-stable/fs/namespace.c --- a/fs/namespace.c
=================================================================== +++ b/fs/namespace.c
--- linux-stable.orig/fs/namespace.c
+++ linux-stable/fs/namespace.c
@@ -315,8 +315,11 @@ int __mnt_want_write(struct vfsmount *m) @@ -315,8 +315,11 @@ int __mnt_want_write(struct vfsmount *m)
* incremented count after it has set MNT_WRITE_HOLD. * incremented count after it has set MNT_WRITE_HOLD.
*/ */

View File

@ -1,7 +1,7 @@
From: Mike Galbraith <efault@gmx.de> From: Mike Galbraith <efault@gmx.de>
Date: Fri, 3 Jul 2009 08:44:12 -0500 Date: Fri, 3 Jul 2009 08:44:12 -0500
Subject: fs: ntfs: disable interrupt only on !RT 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: On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
> * Nick Piggin <nickpiggin@yahoo.com.au> 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 ++-- fs/ntfs/aops.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-stable/fs/ntfs/aops.c --- a/fs/ntfs/aops.c
=================================================================== +++ b/fs/ntfs/aops.c
--- linux-stable.orig/fs/ntfs/aops.c
+++ linux-stable/fs/ntfs/aops.c
@@ -144,13 +144,13 @@ static void ntfs_end_buffer_async_read(s @@ -144,13 +144,13 @@ static void ntfs_end_buffer_async_read(s
recs = PAGE_CACHE_SIZE / rec_size; recs = PAGE_CACHE_SIZE / rec_size;
/* Should have been verified before we got here... */ /* Should have been verified before we got here... */

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100 Date: Fri, 18 Mar 2011 09:18:52 +0100
Subject: buffer_head: Replace bh_uptodate_lock for -rt 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 Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock. replacements with a real spinlock.
@ -13,10 +13,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/buffer_head.h | 34 ++++++++++++++++++++++++++++++++++ include/linux/buffer_head.h | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 44 insertions(+), 21 deletions(-) 3 files changed, 44 insertions(+), 21 deletions(-)
Index: linux-stable/fs/buffer.c --- a/fs/buffer.c
=================================================================== +++ b/fs/buffer.c
--- linux-stable.orig/fs/buffer.c
+++ linux-stable/fs/buffer.c
@@ -288,8 +288,7 @@ static void end_buffer_async_read(struct @@ -288,8 +288,7 @@ static void end_buffer_async_read(struct
* decide that the page is now completely done. * decide that the page is now completely done.
*/ */
@ -84,10 +82,8 @@ Index: linux-stable/fs/buffer.c
preempt_disable(); preempt_disable();
__this_cpu_inc(bh_accounting.nr); __this_cpu_inc(bh_accounting.nr);
recalc_bh_state(); recalc_bh_state();
Index: linux-stable/fs/ntfs/aops.c --- a/fs/ntfs/aops.c
=================================================================== +++ b/fs/ntfs/aops.c
--- linux-stable.orig/fs/ntfs/aops.c
+++ linux-stable/fs/ntfs/aops.c
@@ -108,8 +108,7 @@ static void ntfs_end_buffer_async_read(s @@ -108,8 +108,7 @@ static void ntfs_end_buffer_async_read(s
"0x%llx.", (unsigned long long)bh->b_blocknr); "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 --- a/include/linux/buffer_head.h
=================================================================== +++ b/include/linux/buffer_head.h
--- linux-stable.orig/include/linux/buffer_head.h
+++ linux-stable/include/linux/buffer_head.h
@@ -74,8 +74,42 @@ struct buffer_head { @@ -74,8 +74,42 @@ struct buffer_head {
struct address_space *b_assoc_map; /* mapping this buffer is struct address_space *b_assoc_map; /* mapping this buffer is
associated with */ associated with */

View File

@ -1,7 +1,7 @@
Subject: ftrace-migrate-disable-tracing.patch Subject: ftrace-migrate-disable-tracing.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:56:42 +0200 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> 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 +++++ kernel/trace/trace_output.c | 5 +++++
4 files changed, 15 insertions(+), 4 deletions(-) 4 files changed, 15 insertions(+), 4 deletions(-)
Index: linux-stable/include/linux/ftrace_event.h --- a/include/linux/ftrace_event.h
=================================================================== +++ b/include/linux/ftrace_event.h
--- linux-stable.orig/include/linux/ftrace_event.h
+++ linux-stable/include/linux/ftrace_event.h
@@ -56,6 +56,8 @@ struct trace_entry { @@ -56,6 +56,8 @@ struct trace_entry {
unsigned char flags; unsigned char flags;
unsigned char preempt_count; unsigned char preempt_count;
@ -24,11 +22,9 @@ Index: linux-stable/include/linux/ftrace_event.h
}; };
#define FTRACE_MAX_EVENT \ #define FTRACE_MAX_EVENT \
Index: linux-stable/kernel/trace/trace.c --- a/kernel/trace/trace.c
=================================================================== +++ b/kernel/trace/trace.c
--- linux-stable.orig/kernel/trace/trace.c @@ -399,7 +399,7 @@ int __trace_puts(unsigned long ip, const
+++ linux-stable/kernel/trace/trace.c
@@ -368,7 +368,7 @@ int __trace_puts(unsigned long ip, const
local_save_flags(irq_flags); local_save_flags(irq_flags);
buffer = global_trace.trace_buffer.buffer; buffer = global_trace.trace_buffer.buffer;
@ -37,7 +33,7 @@ Index: linux-stable/kernel/trace/trace.c
irq_flags, preempt_count()); irq_flags, preempt_count());
if (!event) if (!event)
return 0; 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 & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) | ((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) |
(need_resched() ? TRACE_FLAG_NEED_RESCHED : 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); 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, "# | / _----=> need-resched \n");
seq_puts(m, "# || / _---=> hardirq/softirq \n"); seq_puts(m, "# || / _---=> hardirq/softirq \n");
seq_puts(m, "# ||| / _--=> preempt-depth \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) static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
Index: linux-stable/kernel/trace/trace_events.c --- a/kernel/trace/trace_events.c
=================================================================== +++ b/kernel/trace/trace_events.c
--- linux-stable.orig/kernel/trace/trace_events.c @@ -171,6 +171,7 @@ static int trace_define_common_fields(vo
+++ linux-stable/kernel/trace/trace_events.c
@@ -154,6 +154,7 @@ static int trace_define_common_fields(vo
__common_field(unsigned char, flags); __common_field(unsigned char, flags);
__common_field(unsigned char, preempt_count); __common_field(unsigned char, preempt_count);
__common_field(int, pid); __common_field(int, pid);
@ -72,10 +66,8 @@ Index: linux-stable/kernel/trace/trace_events.c
return ret; return ret;
} }
Index: linux-stable/kernel/trace/trace_output.c --- a/kernel/trace/trace_output.c
=================================================================== +++ b/kernel/trace/trace_output.c
--- linux-stable.orig/kernel/trace/trace_output.c
+++ linux-stable/kernel/trace/trace_output.c
@@ -635,6 +635,11 @@ int trace_print_lat_fmt(struct trace_seq @@ -635,6 +635,11 @@ int trace_print_lat_fmt(struct trace_seq
else else
ret = trace_seq_putc(s, '.'); ret = trace_seq_putc(s, '.');

View File

@ -1,6 +1,6 @@
From: Steven Rostedt <rostedt@goodmis.org> From: Steven Rostedt <rostedt@goodmis.org>
Subject: futex: Fix bug on when a requeued RT task times out 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. 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 + kernel/rtmutex_common.h | 1 +
2 files changed, 32 insertions(+), 1 deletion(-) 2 files changed, 32 insertions(+), 1 deletion(-)
Index: linux-stable/kernel/rtmutex.c --- a/kernel/rtmutex.c
=================================================================== +++ b/kernel/rtmutex.c
--- linux-stable.orig/kernel/rtmutex.c
+++ linux-stable/kernel/rtmutex.c
@@ -70,7 +70,8 @@ static void fixup_rt_mutex_waiters(struc @@ -70,7 +70,8 @@ static void fixup_rt_mutex_waiters(struc
static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter) 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; return 1;
} }
@ -105,10 +103,8 @@ Index: linux-stable/kernel/rtmutex.c
ret = task_blocks_on_rt_mutex(lock, waiter, task, detect_deadlock); ret = task_blocks_on_rt_mutex(lock, waiter, task, detect_deadlock);
if (ret && !rt_mutex_owner(lock)) { if (ret && !rt_mutex_owner(lock)) {
Index: linux-stable/kernel/rtmutex_common.h --- a/kernel/rtmutex_common.h
=================================================================== +++ b/kernel/rtmutex_common.h
--- linux-stable.orig/kernel/rtmutex_common.h
+++ linux-stable/kernel/rtmutex_common.h
@@ -104,6 +104,7 @@ static inline struct task_struct *rt_mut @@ -104,6 +104,7 @@ static inline struct task_struct *rt_mut
* PI-futex support (proxy locking functions, etc.): * PI-futex support (proxy locking functions, etc.):
*/ */

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500 Date: Fri, 3 Jul 2009 08:29:57 -0500
Subject: genirq: disable irqpoll on -rt 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 Creates long latencies for no value
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/spurious.c | 10 ++++++++++ kernel/irq/spurious.c | 10 ++++++++++
1 file changed, 10 insertions(+) 1 file changed, 10 insertions(+)
Index: linux-stable/kernel/irq/spurious.c --- a/kernel/irq/spurious.c
=================================================================== +++ b/kernel/irq/spurious.c
--- linux-stable.orig/kernel/irq/spurious.c
+++ linux-stable/kernel/irq/spurious.c
@@ -340,6 +340,11 @@ MODULE_PARM_DESC(noirqdebug, "Disable ir @@ -340,6 +340,11 @@ MODULE_PARM_DESC(noirqdebug, "Disable ir
static int __init irqfixup_setup(char *str) static int __init irqfixup_setup(char *str)

View File

@ -1,7 +1,7 @@
Subject: genirq-force-threading.patch Subject: genirq-force-threading.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 03 Apr 2011 11:57:29 +0200 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> 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 ++ kernel/irq/manage.c | 2 ++
2 files changed, 8 insertions(+), 2 deletions(-) 2 files changed, 8 insertions(+), 2 deletions(-)
Index: linux-stable/include/linux/interrupt.h --- a/include/linux/interrupt.h
=================================================================== +++ b/include/linux/interrupt.h
--- linux-stable.orig/include/linux/interrupt.h
+++ linux-stable/include/linux/interrupt.h
@@ -383,9 +383,13 @@ static inline int disable_irq_wake(unsig @@ -383,9 +383,13 @@ static inline int disable_irq_wake(unsig
@ -29,10 +27,8 @@ Index: linux-stable/include/linux/interrupt.h
#endif #endif
#ifndef __ARCH_SET_SOFTIRQ_PENDING #ifndef __ARCH_SET_SOFTIRQ_PENDING
Index: linux-stable/kernel/irq/manage.c --- a/kernel/irq/manage.c
=================================================================== +++ b/kernel/irq/manage.c
--- linux-stable.orig/kernel/irq/manage.c
+++ linux-stable/kernel/irq/manage.c
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
#include "internals.h" #include "internals.h"

View File

@ -1,17 +1,15 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 18 Mar 2011 10:22:04 +0100 Date: Sun, 18 Mar 2011 10:22:04 +0100
Subject: genirq: Disable DEBUG_SHIRQ for rt 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
lib/Kconfig.debug | 2 +- lib/Kconfig.debug | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/lib/Kconfig.debug --- a/lib/Kconfig.debug
=================================================================== +++ b/lib/Kconfig.debug
--- linux-stable.orig/lib/Kconfig.debug
+++ linux-stable/lib/Kconfig.debug
@@ -164,7 +164,7 @@ config DEBUG_KERNEL @@ -164,7 +164,7 @@ config DEBUG_KERNEL
config DEBUG_SHIRQ 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Jun 2013 11:38:28 +0200 Date: Fri, 21 Jun 2013 11:38:28 +0200
Subject: [PATCH] gpu: i915: allow the user not to do the wbinvd 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 The wbinvd() renders the system with i915 unusable on RT. Using this
expensive instruction avoids GPU trouble according to 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 +++++++++++++++-- drivers/gpu/drm/i915/i915_gem.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-) 1 file changed, 15 insertions(+), 2 deletions(-)
Index: 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
--- linux-stable.orig/drivers/gpu/drm/i915/i915_gem.c
+++ linux-stable/drivers/gpu/drm/i915/i915_gem.c
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
#include <linux/swap.h> #include <linux/swap.h>
#include <linux/pci.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_gtt_write_domain(struct drm_i915_gem_object *obj);
static void i915_gem_object_flush_cpu_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; 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) static void i915_gem_write_fence__ipi(void *data)
{ {
wbinvd(); 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 * on each processor in order to manually flush all memory
* transactions before updating the fence register. * transactions before updating the fence register.
*/ */

View File

@ -1,7 +1,7 @@
Subject: hardirq.h: Define softirq_count() as OUL to kill build warning Subject: hardirq.h: Define softirq_count() as OUL to kill build warning
From: Yong Zhang <yong.zhang0@gmail.com> From: Yong Zhang <yong.zhang0@gmail.com>
Date: Thu, 13 Oct 2011 17:19:09 +0800 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: 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 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 +- include/linux/hardirq.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/include/linux/hardirq.h --- a/include/linux/hardirq.h
=================================================================== +++ b/include/linux/hardirq.h
--- linux-stable.orig/include/linux/hardirq.h
+++ linux-stable/include/linux/hardirq.h
@@ -85,7 +85,7 @@ @@ -85,7 +85,7 @@
# define softirq_count() (preempt_count() & SOFTIRQ_MASK) # define softirq_count() (preempt_count() & SOFTIRQ_MASK)
# define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET) # define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)

View File

@ -1,7 +1,7 @@
Subject: hotplug: Call cpu_unplug_begin() before DOWN_PREPARE Subject: hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
From: Yong Zhang <yong.zhang0@gmail.com> From: Yong Zhang <yong.zhang0@gmail.com>
Date: Sun, 16 Oct 2011 18:56:44 +0800 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 cpu_unplug_begin() should be called before CPU_DOWN_PREPARE, because
at CPU_DOWN_PREPARE cpu_active is cleared and sched_domain is 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 +++++++--------- kernel/cpu.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-) 1 file changed, 7 insertions(+), 9 deletions(-)
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -411,22 +411,20 @@ static int __ref _cpu_down(unsigned int @@ -411,22 +411,20 @@ static int __ref _cpu_down(unsigned int
return -EBUSY; return -EBUSY;
} }

View File

@ -1,7 +1,7 @@
Subject: hotplug: Lightweight get online cpus Subject: hotplug: Lightweight get online cpus
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 15 Jun 2011 12:36:06 +0200 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 get_online_cpus() is a heavy weight function which involves a global
mutex. migrate_disable() wants a simpler construct which prevents only 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 ++++++++++++++++++++++++++++++++++++++++++++++++++-- kernel/cpu.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 131 insertions(+), 7 deletions(-) 2 files changed, 131 insertions(+), 7 deletions(-)
Index: linux-stable/include/linux/cpu.h --- a/include/linux/cpu.h
=================================================================== +++ b/include/linux/cpu.h
--- linux-stable.orig/include/linux/cpu.h
+++ linux-stable/include/linux/cpu.h
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
/* /*
* include/linux/cpu.h - generic cpu definition * 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) #define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
/* These aren't inline functions due to a GCC bug. */ /* These aren't inline functions due to a GCC bug. */
#define register_hotcpu_notifier(nb) ({ (void)(nb); 0; }) #define register_hotcpu_notifier(nb) ({ (void)(nb); 0; })
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -63,6 +63,101 @@ static struct { @@ -63,6 +63,101 @@ static struct {
.refcount = 0, .refcount = 0,
}; };

View File

@ -1,7 +1,7 @@
Subject: hotplug: sync_unplug: No "\n" in task name Subject: hotplug: sync_unplug: No "\n" in task name
From: Yong Zhang <yong.zhang0@gmail.com> From: Yong Zhang <yong.zhang0@gmail.com>
Date: Sun, 16 Oct 2011 18:56:43 +0800 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. Otherwise the output will look a little odd.
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/cpu.c | 2 +- kernel/cpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -142,7 +142,7 @@ static int cpu_unplug_begin(unsigned int @@ -142,7 +142,7 @@ static int cpu_unplug_begin(unsigned int
struct task_struct *tsk; struct task_struct *tsk;

View File

@ -1,17 +1,15 @@
Subject: hotplug-use-migrate-disable.patch Subject: hotplug-use-migrate-disable.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 19:35:29 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
kernel/cpu.c | 6 +++--- kernel/cpu.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-) 1 file changed, 3 insertions(+), 3 deletions(-)
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -403,14 +403,13 @@ static int __ref _cpu_down(unsigned int @@ -403,14 +403,13 @@ static int __ref _cpu_down(unsigned int
cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu)); cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu));
set_cpus_allowed_ptr(current, cpumask); 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> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:31 -0500 Date: Fri, 3 Jul 2009 08:44:31 -0500
Subject: hrtimer: fixup hrtimer callback changes for preempt-rt 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 In preempt-rt we can not call the callbacks which take sleeping locks
from the timer interrupt context. from the timer interrupt context.
@ -21,10 +21,8 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/watchdog.c | 1 kernel/watchdog.c | 1
6 files changed, 195 insertions(+), 28 deletions(-) 6 files changed, 195 insertions(+), 28 deletions(-)
Index: linux-stable/include/linux/hrtimer.h --- a/include/linux/hrtimer.h
=================================================================== +++ b/include/linux/hrtimer.h
--- linux-stable.orig/include/linux/hrtimer.h
+++ linux-stable/include/linux/hrtimer.h
@@ -111,6 +111,8 @@ struct hrtimer { @@ -111,6 +111,8 @@ struct hrtimer {
enum hrtimer_restart (*function)(struct hrtimer *); enum hrtimer_restart (*function)(struct hrtimer *);
struct hrtimer_clock_base *base; struct hrtimer_clock_base *base;
@ -42,10 +40,8 @@ Index: linux-stable/include/linux/hrtimer.h
ktime_t resolution; ktime_t resolution;
ktime_t (*get_time)(void); ktime_t (*get_time)(void);
ktime_t softirq_time; ktime_t softirq_time;
Index: linux-stable/kernel/hrtimer.c --- a/kernel/hrtimer.c
=================================================================== +++ b/kernel/hrtimer.c
--- linux-stable.orig/kernel/hrtimer.c
+++ linux-stable/kernel/hrtimer.c
@@ -607,8 +607,7 @@ static int hrtimer_reprogram(struct hrti @@ -607,8 +607,7 @@ static int hrtimer_reprogram(struct hrti
* When the callback is running, we do not reprogram the clock event * When the callback is running, we do not reprogram the clock event
* device. The timer callback is either running on a different CPU or * 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 --- a/kernel/sched/core.c
=================================================================== +++ b/kernel/sched/core.c
--- linux-stable.orig/kernel/sched/core.c
+++ linux-stable/kernel/sched/core.c
@@ -489,6 +489,7 @@ static void init_rq_hrtick(struct rq *rq @@ -489,6 +489,7 @@ static void init_rq_hrtick(struct rq *rq
hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 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 */ #else /* CONFIG_SCHED_HRTICK */
static inline void hrtick_clear(struct rq *rq) static inline void hrtick_clear(struct rq *rq)
Index: linux-stable/kernel/sched/rt.c --- a/kernel/sched/rt.c
=================================================================== +++ b/kernel/sched/rt.c
--- linux-stable.orig/kernel/sched/rt.c
+++ linux-stable/kernel/sched/rt.c
@@ -43,6 +43,7 @@ void init_rt_bandwidth(struct rt_bandwid @@ -43,6 +43,7 @@ void init_rt_bandwidth(struct rt_bandwid
hrtimer_init(&rt_b->rt_period_timer, 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; rt_b->rt_period_timer.function = sched_rt_period_timer;
} }
Index: linux-stable/kernel/time/tick-sched.c --- a/kernel/time/tick-sched.c
=================================================================== +++ b/kernel/time/tick-sched.c
--- linux-stable.orig/kernel/time/tick-sched.c @@ -1128,6 +1128,7 @@ void tick_setup_sched_timer(void)
+++ linux-stable/kernel/time/tick-sched.c
@@ -1133,6 +1133,7 @@ void tick_setup_sched_timer(void)
* Emulate tick processing via per-CPU hrtimers: * Emulate tick processing via per-CPU hrtimers:
*/ */
hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); 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; ts->sched_timer.function = tick_sched_timer;
/* Get the next period (per cpu) */ /* Get the next period (per cpu) */
Index: linux-stable/kernel/watchdog.c --- a/kernel/watchdog.c
=================================================================== +++ b/kernel/watchdog.c
--- linux-stable.orig/kernel/watchdog.c
+++ linux-stable/kernel/watchdog.c
@@ -357,6 +357,7 @@ static void watchdog_enable(unsigned int @@ -357,6 +357,7 @@ static void watchdog_enable(unsigned int
/* kick off the timer for the hardlockup detector */ /* kick off the timer for the hardlockup detector */
hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);

View File

@ -1,7 +1,7 @@
Subject: hrtimer: Raise softirq if hrtimer irq stalled Subject: hrtimer: Raise softirq if hrtimer irq stalled
From: Watanabe <shunsuke.watanabe@tel.com> From: Watanabe <shunsuke.watanabe@tel.com>
Date: Sun, 28 Oct 2012 11:13:44 +0100 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. 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 ++++----- kernel/hrtimer.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-) 1 file changed, 4 insertions(+), 5 deletions(-)
Index: linux-stable/kernel/hrtimer.c --- a/kernel/hrtimer.c
=================================================================== +++ b/kernel/hrtimer.c
--- linux-stable.orig/kernel/hrtimer.c @@ -1556,11 +1556,7 @@ retry:
+++ linux-stable/kernel/hrtimer.c
@@ -1551,11 +1551,7 @@ retry:
if (expires_next.tv64 == KTIME_MAX || if (expires_next.tv64 == KTIME_MAX ||
!tick_program_event(expires_next, 0)) { !tick_program_event(expires_next, 0)) {
cpu_base->hang_detected = 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); tick_program_event(expires_next, 1);
printk_once(KERN_WARNING "hrtimer: interrupt took %llu ns\n", printk_once(KERN_WARNING "hrtimer: interrupt took %llu ns\n",
ktime_to_ns(delta)); ktime_to_ns(delta));

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500 Date: Fri, 3 Jul 2009 08:29:34 -0500
Subject: hrtimers: prepare full preemption 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 Make cancellation of a running callback in softirq context safe
against preemption. against preemption.
@ -16,10 +16,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/posix-timers.c | 33 +++++++++++++++++++++++++++++++++ kernel/posix-timers.c | 33 +++++++++++++++++++++++++++++++++
4 files changed, 76 insertions(+), 1 deletion(-) 4 files changed, 76 insertions(+), 1 deletion(-)
Index: linux-stable/include/linux/hrtimer.h --- a/include/linux/hrtimer.h
=================================================================== +++ b/include/linux/hrtimer.h
--- linux-stable.orig/include/linux/hrtimer.h
+++ linux-stable/include/linux/hrtimer.h
@@ -193,6 +193,9 @@ struct hrtimer_cpu_base { @@ -193,6 +193,9 @@ struct hrtimer_cpu_base {
unsigned long nr_hangs; unsigned long nr_hangs;
ktime_t max_hang_time; ktime_t max_hang_time;
@ -44,11 +42,9 @@ Index: linux-stable/include/linux/hrtimer.h
/* Query timers: */ /* Query timers: */
extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp); extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
Index: linux-stable/kernel/hrtimer.c --- a/kernel/hrtimer.c
=================================================================== +++ b/kernel/hrtimer.c
--- linux-stable.orig/kernel/hrtimer.c @@ -868,6 +868,32 @@ u64 hrtimer_forward(struct hrtimer *time
+++ linux-stable/kernel/hrtimer.c
@@ -863,6 +863,32 @@ u64 hrtimer_forward(struct hrtimer *time
} }
EXPORT_SYMBOL_GPL(hrtimer_forward); EXPORT_SYMBOL_GPL(hrtimer_forward);
@ -81,7 +77,7 @@ Index: linux-stable/kernel/hrtimer.c
/* /*
* enqueue_hrtimer - internal function to (re)start a timer * 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) if (ret >= 0)
return ret; return ret;
@ -90,7 +86,7 @@ Index: linux-stable/kernel/hrtimer.c
} }
} }
EXPORT_SYMBOL_GPL(hrtimer_cancel); 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); 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); hrtimer_init_hres(cpu_base);
@ -109,10 +105,8 @@ Index: linux-stable/kernel/hrtimer.c
} }
#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_HOTPLUG_CPU
Index: linux-stable/kernel/itimer.c --- a/kernel/itimer.c
=================================================================== +++ b/kernel/itimer.c
--- linux-stable.orig/kernel/itimer.c
+++ linux-stable/kernel/itimer.c
@@ -213,6 +213,7 @@ again: @@ -213,6 +213,7 @@ again:
/* We are sharing ->siglock with it_real_fn() */ /* We are sharing ->siglock with it_real_fn() */
if (hrtimer_try_to_cancel(timer) < 0) { if (hrtimer_try_to_cancel(timer) < 0) {
@ -121,10 +115,8 @@ Index: linux-stable/kernel/itimer.c
goto again; goto again;
} }
expires = timeval_to_ktime(value->it_value); expires = timeval_to_ktime(value->it_value);
Index: linux-stable/kernel/posix-timers.c --- a/kernel/posix-timers.c
=================================================================== +++ b/kernel/posix-timers.c
--- linux-stable.orig/kernel/posix-timers.c
+++ linux-stable/kernel/posix-timers.c
@@ -818,6 +818,20 @@ SYSCALL_DEFINE1(timer_getoverrun, timer_ @@ -818,6 +818,20 @@ SYSCALL_DEFINE1(timer_getoverrun, timer_
return overrun; return overrun;
} }

View File

@ -1,7 +1,7 @@
Subject: hwlatdetect.patch Subject: hwlatdetect.patch
From: Carsten Emde <C.Emde@osadl.org> From: Carsten Emde <C.Emde@osadl.org>
Date: Tue, 19 Jul 2011 13:53:12 +0100 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 Jon Masters developed this wonderful SMI detector. For details please
consult Documentation/hwlat_detector.txt. It could be ported to Linux 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 +++++++++++++++++++++++++++++++++++++++ drivers/misc/hwlat_detector.c | 1212 +++++++++++++++++++++++++++++++++++++++
4 files changed, 1306 insertions(+) 4 files changed, 1306 insertions(+)
Index: linux-stable/Documentation/hwlat_detector.txt
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/Documentation/hwlat_detector.txt +++ b/Documentation/hwlat_detector.txt
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
+Introduction: +Introduction:
+------------- +-------------
@ -85,10 +83,8 @@ Index: linux-stable/Documentation/hwlat_detector.txt
+observe any latencies that exceed the threshold (initially 100 usecs), +observe any latencies that exceed the threshold (initially 100 usecs),
+then we write to a global sample ring buffer of 8K samples, which is +then we write to a global sample ring buffer of 8K samples, which is
+consumed by reading from the "sample" (pipe) debugfs file interface. +consumed by reading from the "sample" (pipe) debugfs file interface.
Index: linux-stable/drivers/misc/Kconfig --- a/drivers/misc/Kconfig
=================================================================== +++ b/drivers/misc/Kconfig
--- linux-stable.orig/drivers/misc/Kconfig
+++ linux-stable/drivers/misc/Kconfig
@@ -130,6 +130,35 @@ config IBM_ASM @@ -130,6 +130,35 @@ config IBM_ASM
for information on the specific driver level and support statement for information on the specific driver level and support statement
for your IBM server. for your IBM server.
@ -125,19 +121,15 @@ Index: linux-stable/drivers/misc/Kconfig
config PHANTOM config PHANTOM
tristate "Sensable PHANToM (PCI)" tristate "Sensable PHANToM (PCI)"
depends on PCI depends on PCI
Index: linux-stable/drivers/misc/Makefile --- a/drivers/misc/Makefile
=================================================================== +++ b/drivers/misc/Makefile
--- linux-stable.orig/drivers/misc/Makefile
+++ linux-stable/drivers/misc/Makefile
@@ -53,3 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/ @@ -53,3 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/
obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/ obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/
obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o
obj-$(CONFIG_SRAM) += sram.o obj-$(CONFIG_SRAM) += sram.o
+obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o +obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o
Index: linux-stable/drivers/misc/hwlat_detector.c
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/drivers/misc/hwlat_detector.c +++ b/drivers/misc/hwlat_detector.c
@@ -0,0 +1,1212 @@ @@ -0,0 +1,1212 @@
+/* +/*
+ * hwlat_detector.c - A simple Hardware Latency detector. + * 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Mar 2013 11:35:49 +0100 Date: Thu, 21 Mar 2013 11:35:49 +0100
Subject: [PATCH 2/3] i2c/omap: drop the lock hard irq context 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 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. 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 +---- drivers/i2c/busses/i2c-omap.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-) 1 file changed, 1 insertion(+), 4 deletions(-)
Index: linux-stable/drivers/i2c/busses/i2c-omap.c --- a/drivers/i2c/busses/i2c-omap.c
=================================================================== +++ b/drivers/i2c/busses/i2c-omap.c
--- linux-stable.orig/drivers/i2c/busses/i2c-omap.c
+++ linux-stable/drivers/i2c/busses/i2c-omap.c
@@ -881,15 +881,12 @@ omap_i2c_isr(int irq, void *dev_id) @@ -881,15 +881,12 @@ omap_i2c_isr(int irq, void *dev_id)
u16 mask; u16 mask;
u16 stat; u16 stat;

View File

@ -1,6 +1,6 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: gpu/i915: don't open code these things 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 opencode part is gone in 1f83fee0 ("drm/i915: clear up wedged transitions")
the owner check is still there. 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 +- drivers/gpu/drm/i915/i915_gem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: 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
--- linux-stable.orig/drivers/gpu/drm/i915/i915_gem.c @@ -4449,7 +4449,7 @@ static bool mutex_is_locked_by(struct mu
+++ linux-stable/drivers/gpu/drm/i915/i915_gem.c
@@ -4412,7 +4412,7 @@ static bool mutex_is_locked_by(struct mu
if (!mutex_is_locked(mutex)) if (!mutex_is_locked(mutex))
return false; return false;

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500 Date: Fri, 3 Jul 2009 08:30:16 -0500
Subject: ide: Do not disable interrupts for PREEMPT-RT 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. Use the local_irq_*_nort variants.
@ -18,10 +18,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/ide/ide-taskfile.c | 6 +++--- drivers/ide/ide-taskfile.c | 6 +++---
7 files changed, 16 insertions(+), 16 deletions(-) 7 files changed, 16 insertions(+), 16 deletions(-)
Index: linux-stable/drivers/ide/alim15x3.c --- a/drivers/ide/alim15x3.c
=================================================================== +++ b/drivers/ide/alim15x3.c
--- linux-stable.orig/drivers/ide/alim15x3.c
+++ linux-stable/drivers/ide/alim15x3.c
@@ -234,7 +234,7 @@ static int init_chipset_ali15x3(struct p @@ -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); 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; return 0;
} }
Index: linux-stable/drivers/ide/hpt366.c --- a/drivers/ide/hpt366.c
=================================================================== +++ b/drivers/ide/hpt366.c
--- linux-stable.orig/drivers/ide/hpt366.c
+++ linux-stable/drivers/ide/hpt366.c
@@ -1241,7 +1241,7 @@ static int init_dma_hpt366(ide_hwif_t *h @@ -1241,7 +1241,7 @@ static int init_dma_hpt366(ide_hwif_t *h
dma_old = inb(base + 2); 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", printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n",
hwif->name, base, base + 7); hwif->name, base, base + 7);
Index: linux-stable/drivers/ide/ide-io-std.c --- a/drivers/ide/ide-io-std.c
=================================================================== +++ b/drivers/ide/ide-io-std.c
--- linux-stable.orig/drivers/ide/ide-io-std.c
+++ linux-stable/drivers/ide/ide-io-std.c
@@ -175,7 +175,7 @@ void ide_input_data(ide_drive_t *drive, @@ -175,7 +175,7 @@ void ide_input_data(ide_drive_t *drive,
unsigned long uninitialized_var(flags); unsigned long uninitialized_var(flags);
@ -102,10 +96,8 @@ Index: linux-stable/drivers/ide/ide-io-std.c
if (((len + 1) & 3) < 2) if (((len + 1) & 3) < 2)
return; return;
Index: linux-stable/drivers/ide/ide-io.c --- a/drivers/ide/ide-io.c
=================================================================== +++ b/drivers/ide/ide-io.c
--- linux-stable.orig/drivers/ide/ide-io.c
+++ linux-stable/drivers/ide/ide-io.c
@@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long dat @@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long dat
/* disable_irq_nosync ?? */ /* disable_irq_nosync ?? */
disable_irq(hwif->irq); disable_irq(hwif->irq);
@ -115,10 +107,8 @@ Index: linux-stable/drivers/ide/ide-io.c
if (hwif->polling) { if (hwif->polling) {
startstop = handler(drive); startstop = handler(drive);
} else if (drive_is_ready(drive)) { } else if (drive_is_ready(drive)) {
Index: linux-stable/drivers/ide/ide-iops.c --- a/drivers/ide/ide-iops.c
=================================================================== +++ b/drivers/ide/ide-iops.c
--- linux-stable.orig/drivers/ide/ide-iops.c
+++ linux-stable/drivers/ide/ide-iops.c
@@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive, @@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive,
if ((stat & ATA_BUSY) == 0) if ((stat & ATA_BUSY) == 0)
break; break;
@ -134,10 +124,8 @@ Index: linux-stable/drivers/ide/ide-iops.c
} }
/* /*
* Allow status to settle, then read it again. * Allow status to settle, then read it again.
Index: linux-stable/drivers/ide/ide-probe.c --- a/drivers/ide/ide-probe.c
=================================================================== +++ b/drivers/ide/ide-probe.c
--- linux-stable.orig/drivers/ide/ide-probe.c
+++ linux-stable/drivers/ide/ide-probe.c
@@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *dri @@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *dri
int bswap = 1; int bswap = 1;
@ -151,10 +139,8 @@ Index: linux-stable/drivers/ide/ide-probe.c
drive->dev_flags |= IDE_DFLAG_ID_READ; drive->dev_flags |= IDE_DFLAG_ID_READ;
#ifdef DEBUG #ifdef DEBUG
Index: linux-stable/drivers/ide/ide-taskfile.c --- a/drivers/ide/ide-taskfile.c
=================================================================== +++ b/drivers/ide/ide-taskfile.c
--- linux-stable.orig/drivers/ide/ide-taskfile.c
+++ linux-stable/drivers/ide/ide-taskfile.c
@@ -251,7 +251,7 @@ void ide_pio_bytes(ide_drive_t *drive, s @@ -251,7 +251,7 @@ void ide_pio_bytes(ide_drive_t *drive, s
page_is_high = PageHighMem(page); page_is_high = PageHighMem(page);

View File

@ -1,18 +1,16 @@
Subject: sched: Init idle->on_rq in init_idle() Subject: sched: Init idle->on_rq in init_idle()
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 09 Jan 2013 23:03:29 +0100 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
kernel/sched/core.c | 1 + kernel/sched/core.c | 1 +
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
Index: linux-stable/kernel/sched/core.c --- a/kernel/sched/core.c
=================================================================== +++ b/kernel/sched/core.c
--- linux-stable.orig/kernel/sched/core.c @@ -4745,6 +4745,7 @@ void __cpuinit init_idle(struct task_str
+++ linux-stable/kernel/sched/core.c
@@ -5034,6 +5034,7 @@ void __cpuinit init_idle(struct task_str
rcu_read_unlock(); rcu_read_unlock();
rq->curr = rq->idle = idle; rq->curr = rq->idle = idle;

View File

@ -1,6 +1,6 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Subject: idr: Use local lock instead of preempt enable/disable 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. 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 ++++++++++++++++++++++++++++++++++--- lib/idr.c | 37 ++++++++++++++++++++++++++++++++++---
2 files changed, 38 insertions(+), 3 deletions(-) 2 files changed, 38 insertions(+), 3 deletions(-)
Index: linux-stable/include/linux/idr.h --- a/include/linux/idr.h
=================================================================== +++ b/include/linux/idr.h
--- linux-stable.orig/include/linux/idr.h
+++ linux-stable/include/linux/idr.h
@@ -92,10 +92,14 @@ void idr_init(struct idr *idp); @@ -92,10 +92,14 @@ void idr_init(struct idr *idp);
* Each idr_preload() should be matched with an invocation of this * Each idr_preload() should be matched with an invocation of this
* function. See idr_preload() for details. * function. See idr_preload() for details.
@ -29,10 +27,8 @@ Index: linux-stable/include/linux/idr.h
/** /**
* idr_find - return pointer for given id * idr_find - return pointer for given id
Index: linux-stable/lib/idr.c --- a/lib/idr.c
=================================================================== +++ b/lib/idr.c
--- linux-stable.orig/lib/idr.c
+++ linux-stable/lib/idr.c
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/percpu.h> #include <linux/percpu.h>

View File

@ -1,7 +1,7 @@
From: Sven-Thorsten Dietrich <sdietrich@novell.com> From: Sven-Thorsten Dietrich <sdietrich@novell.com>
Date: Fri, 3 Jul 2009 08:30:35 -0500 Date: Fri, 3 Jul 2009 08:30:35 -0500
Subject: infiniband: Mellanox IB driver patch use _nort() primitives 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 Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
Kernel. Kernel.
@ -19,10 +19,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++-- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
Index: 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
--- linux-stable.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ linux-stable/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -783,7 +783,7 @@ void ipoib_mcast_restart_task(struct wor @@ -783,7 +783,7 @@ void ipoib_mcast_restart_task(struct wor
ipoib_mcast_stop_thread(dev, 0); ipoib_mcast_stop_thread(dev, 0);

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500 Date: Fri, 3 Jul 2009 08:30:16 -0500
Subject: input: gameport: Do not disable interrupts on PREEMPT_RT 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. Use the _nort() primitives.
@ -12,10 +12,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/input/gameport/gameport.c | 8 ++++---- drivers/input/gameport/gameport.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-) 1 file changed, 4 insertions(+), 4 deletions(-)
Index: linux-stable/drivers/input/gameport/gameport.c --- a/drivers/input/gameport/gameport.c
=================================================================== +++ b/drivers/input/gameport/gameport.c
--- linux-stable.orig/drivers/input/gameport/gameport.c
+++ linux-stable/drivers/input/gameport/gameport.c
@@ -87,12 +87,12 @@ static int gameport_measure_speed(struct @@ -87,12 +87,12 @@ static int gameport_measure_speed(struct
tx = 1 << 30; tx = 1 << 30;

View File

@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:12 -0500 Date: Fri, 3 Jul 2009 08:30:12 -0500
Subject: ipc: Make the ipc code -rt aware 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 RT serializes the code with the (rt)spinlock but keeps preemption
enabled. Some parts of the code need to be atomic nevertheless. 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 ++++++++++++++++ ipc/msg.c | 16 ++++++++++++++++
2 files changed, 21 insertions(+) 2 files changed, 21 insertions(+)
Index: linux-stable/ipc/mqueue.c --- a/ipc/mqueue.c
=================================================================== +++ b/ipc/mqueue.c
--- linux-stable.orig/ipc/mqueue.c
+++ linux-stable/ipc/mqueue.c
@@ -921,12 +921,17 @@ static inline void pipelined_send(struct @@ -921,12 +921,17 @@ static inline void pipelined_send(struct
struct msg_msg *message, struct msg_msg *message,
struct ext_wait_queue *receiver) 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() /* pipelined_receive() - if there is task waiting in sys_mq_timedsend()
Index: linux-stable/ipc/msg.c --- a/ipc/msg.c
=================================================================== +++ b/ipc/msg.c
--- linux-stable.orig/ipc/msg.c
+++ linux-stable/ipc/msg.c
@@ -252,10 +252,18 @@ static void expunge_all(struct msg_queue @@ -252,10 +252,18 @@ static void expunge_all(struct msg_queue
struct msg_receiver *msr, *t; struct msg_receiver *msr, *t;

View File

@ -1,7 +1,7 @@
Subject: ipc/mqueue: Add a critical section to avoid a deadlock Subject: ipc/mqueue: Add a critical section to avoid a deadlock
From: KOBAYASHI Yoshitake <yoshitake.kobayashi@toshiba.co.jp> From: KOBAYASHI Yoshitake <yoshitake.kobayashi@toshiba.co.jp>
Date: Sat, 23 Jul 2011 11:57:36 +0900 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) (Repost for v3.0-rt1 and changed the distination addreses)
I have tested the following patch on v3.0-rt1 with PREEMPT_RT_FULL. 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 ++++++++++++------- ipc/mqueue.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-) 1 file changed, 12 insertions(+), 7 deletions(-)
Index: linux-stable/ipc/mqueue.c --- a/ipc/mqueue.c
=================================================================== +++ b/ipc/mqueue.c
--- linux-stable.orig/ipc/mqueue.c
+++ linux-stable/ipc/mqueue.c
@@ -945,13 +945,18 @@ static inline void pipelined_receive(str @@ -945,13 +945,18 @@ static inline void pipelined_receive(str
wake_up_interruptible(&info->wait_q); wake_up_interruptible(&info->wait_q);
return; return;

View File

@ -1,7 +1,7 @@
Subject: ipc/sem: Rework semaphore wakeups Subject: ipc/sem: Rework semaphore wakeups
From: Peter Zijlstra <peterz@infradead.org> From: Peter Zijlstra <peterz@infradead.org>
Date: Wed, 14 Sep 2011 11:57:04 +0200 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 Subject: ipc/sem: Rework semaphore wakeups
From: Peter Zijlstra <a.p.zijlstra@chello.nl> From: Peter Zijlstra <a.p.zijlstra@chello.nl>
@ -32,10 +32,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
ipc/sem.c | 24 +++++++++++++++++------- ipc/sem.c | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-) 1 file changed, 17 insertions(+), 7 deletions(-)
Index: linux-stable/ipc/sem.c --- a/ipc/sem.c
=================================================================== +++ b/ipc/sem.c
--- linux-stable.orig/ipc/sem.c
+++ linux-stable/ipc/sem.c
@@ -155,7 +155,7 @@ static int sysvipc_sem_proc_show(struct @@ -155,7 +155,7 @@ static int sysvipc_sem_proc_show(struct
* sem_array.sem_pending{,last}, * sem_array.sem_pending{,last},
* sem_array.sem_undo: sem_lock() for read/write * 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 Subject: genirq: Allow disabling of softirq processing in irq thread context
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 31 Jan 2012 13:01:27 +0100 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 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 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 +++++++ kernel/softirq.c | 7 +++++++
5 files changed, 37 insertions(+), 2 deletions(-) 5 files changed, 37 insertions(+), 2 deletions(-)
Index: linux-stable/include/linux/interrupt.h --- a/include/linux/interrupt.h
=================================================================== +++ b/include/linux/interrupt.h
--- linux-stable.orig/include/linux/interrupt.h
+++ linux-stable/include/linux/interrupt.h
@@ -58,6 +58,7 @@ @@ -58,6 +58,7 @@
* IRQF_NO_THREAD - Interrupt cannot be threaded * IRQF_NO_THREAD - Interrupt cannot be threaded
* IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device * 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) #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD)
Index: linux-stable/include/linux/irq.h --- a/include/linux/irq.h
=================================================================== +++ b/include/linux/irq.h
--- linux-stable.orig/include/linux/irq.h
+++ linux-stable/include/linux/irq.h
@@ -70,6 +70,7 @@ typedef void (*irq_preflow_handler_t)(st @@ -70,6 +70,7 @@ typedef void (*irq_preflow_handler_t)(st
* IRQ_MOVE_PCNTXT - Interrupt can be migrated from process context * IRQ_MOVE_PCNTXT - Interrupt can be migrated from process context
* IRQ_NESTED_TRHEAD - Interrupt nests into another thread * 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) #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
Index: linux-stable/kernel/irq/manage.c --- a/kernel/irq/manage.c
=================================================================== +++ b/kernel/irq/manage.c
--- linux-stable.orig/kernel/irq/manage.c
+++ linux-stable/kernel/irq/manage.c
@@ -783,7 +783,15 @@ irq_forced_thread_fn(struct irq_desc *de @@ -783,7 +783,15 @@ irq_forced_thread_fn(struct irq_desc *de
local_bh_disable(); local_bh_disable();
ret = action->thread_fn(action->irq, action->dev_id); 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 */ /* Set default affinity mask once everything is setup */
setup_affinity(irq, desc, mask); setup_affinity(irq, desc, mask);
Index: linux-stable/kernel/irq/settings.h --- a/kernel/irq/settings.h
=================================================================== +++ b/kernel/irq/settings.h
--- linux-stable.orig/kernel/irq/settings.h
+++ linux-stable/kernel/irq/settings.h
@@ -14,6 +14,7 @@ enum { @@ -14,6 +14,7 @@ enum {
_IRQ_NO_BALANCING = IRQ_NO_BALANCING, _IRQ_NO_BALANCING = IRQ_NO_BALANCING,
_IRQ_NESTED_THREAD = IRQ_NESTED_THREAD, _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) static inline bool irq_settings_is_per_cpu(struct irq_desc *desc)
{ {
return desc->status_use_accessors & _IRQ_PER_CPU; return desc->status_use_accessors & _IRQ_PER_CPU;
Index: linux-stable/kernel/softirq.c --- a/kernel/softirq.c
=================================================================== +++ b/kernel/softirq.c
--- linux-stable.orig/kernel/softirq.c
+++ linux-stable/kernel/softirq.c
@@ -425,6 +425,13 @@ void local_bh_enable_ip(unsigned long ip @@ -425,6 +425,13 @@ void local_bh_enable_ip(unsigned long ip
} }
EXPORT_SYMBOL(local_bh_enable_ip); EXPORT_SYMBOL(local_bh_enable_ip);

View File

@ -1,17 +1,15 @@
Subject: jump-label-rt.patch Subject: jump-label-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 13 Jul 2011 11:03:16 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
include/linux/jump_label.h | 3 ++- include/linux/jump_label.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-stable/include/linux/jump_label.h --- a/include/linux/jump_label.h
=================================================================== +++ b/include/linux/jump_label.h
--- linux-stable.orig/include/linux/jump_label.h
+++ linux-stable/include/linux/jump_label.h
@@ -50,7 +50,8 @@ @@ -50,7 +50,8 @@
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/workqueue.h> #include <linux/workqueue.h>

View File

@ -1,7 +1,7 @@
Subject: kconfig-disable-a-few-options-rt.patch Subject: kconfig-disable-a-few-options-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200 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 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 +- mm/Kconfig | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-) 3 files changed, 3 insertions(+), 1 deletion(-)
Index: linux-stable/arch/Kconfig --- a/arch/Kconfig
=================================================================== +++ b/arch/Kconfig
--- linux-stable.orig/arch/Kconfig
+++ linux-stable/arch/Kconfig
@@ -6,6 +6,7 @@ config OPROFILE @@ -6,6 +6,7 @@ config OPROFILE
tristate "OProfile system profiling" tristate "OProfile system profiling"
depends on PROFILING depends on PROFILING
@ -24,10 +22,8 @@ Index: linux-stable/arch/Kconfig
select RING_BUFFER select RING_BUFFER
select RING_BUFFER_ALLOW_SWAP select RING_BUFFER_ALLOW_SWAP
help help
Index: linux-stable/drivers/net/Kconfig --- a/drivers/net/Kconfig
=================================================================== +++ b/drivers/net/Kconfig
--- linux-stable.orig/drivers/net/Kconfig
+++ linux-stable/drivers/net/Kconfig
@@ -164,6 +164,7 @@ config VXLAN @@ -164,6 +164,7 @@ config VXLAN
config NETCONSOLE config NETCONSOLE
@ -36,10 +32,8 @@ Index: linux-stable/drivers/net/Kconfig
---help--- ---help---
If you want to log kernel messages over the network, enable this. If you want to log kernel messages over the network, enable this.
See <file:Documentation/networking/netconsole.txt> for details. See <file:Documentation/networking/netconsole.txt> for details.
Index: linux-stable/mm/Kconfig --- a/mm/Kconfig
=================================================================== +++ b/mm/Kconfig
--- linux-stable.orig/mm/Kconfig
+++ linux-stable/mm/Kconfig
@@ -384,7 +384,7 @@ config NOMMU_INITIAL_TRIM_EXCESS @@ -384,7 +384,7 @@ config NOMMU_INITIAL_TRIM_EXCESS
config TRANSPARENT_HUGEPAGE config TRANSPARENT_HUGEPAGE

View File

@ -1,7 +1,7 @@
Subject: kconfig-preempt-rt-full.patch Subject: kconfig-preempt-rt-full.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 14:58:57 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
@ -10,22 +10,18 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
scripts/mkcompile_h | 4 +++- scripts/mkcompile_h | 4 +++-
3 files changed, 12 insertions(+), 2 deletions(-) 3 files changed, 12 insertions(+), 2 deletions(-)
Index: linux-stable/init/Makefile --- a/init/Makefile
=================================================================== +++ b/init/Makefile
--- linux-stable.orig/init/Makefile
+++ linux-stable/init/Makefile
@@ -33,4 +33,4 @@ silent_chk_compile.h = : @@ -33,4 +33,4 @@ silent_chk_compile.h = :
include/generated/compile.h: FORCE include/generated/compile.h: FORCE
@$($(quiet)chk_compile.h) @$($(quiet)chk_compile.h)
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \ $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)" - "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
+ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)" + "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
Index: linux-stable/kernel/Kconfig.preempt --- a/kernel/Kconfig.preempt
=================================================================== +++ b/kernel/Kconfig.preempt
--- linux-stable.orig/kernel/Kconfig.preempt
+++ linux-stable/kernel/Kconfig.preempt
@@ -73,6 +73,14 @@ config PREEMPT_RTB @@ -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. RT kernel.
+config PREEMPT_RT_FULL +config PREEMPT_RT_FULL
@ -39,10 +35,8 @@ Index: linux-stable/kernel/Kconfig.preempt
endchoice endchoice
config PREEMPT_COUNT config PREEMPT_COUNT
Index: linux-stable/scripts/mkcompile_h --- a/scripts/mkcompile_h
=================================================================== +++ b/scripts/mkcompile_h
--- linux-stable.orig/scripts/mkcompile_h
+++ linux-stable/scripts/mkcompile_h
@@ -4,7 +4,8 @@ TARGET=$1 @@ -4,7 +4,8 @@ TARGET=$1
ARCH=$2 ARCH=$2
SMP=$3 SMP=$3

View File

@ -3,7 +3,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 7 Jun 2013 22:37:06 +0200 Date: Fri, 7 Jun 2013 22:37:06 +0200
Subject: [PATCH] kernel/cpu: fix cpu down problem if kthread's cpu is Subject: [PATCH] kernel/cpu: fix cpu down problem if kthread's cpu is
going down 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 If kthread is pinned to CPUx and CPUx is going down then we get into
trouble: trouble:
@ -27,10 +27,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
kernel/cpu.c | 16 ++++++++++++++-- kernel/cpu.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-) 1 file changed, 14 insertions(+), 2 deletions(-)
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -83,6 +83,7 @@ struct hotplug_pcp { @@ -83,6 +83,7 @@ struct hotplug_pcp {
int refcount; int refcount;
int grab_lock; 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> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 14 Jun 2013 17:16:35 +0200 Date: Fri, 14 Jun 2013 17:16:35 +0200
Subject: [PATCH] kernel/hotplug: restore original cpu mask oncpu/down 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 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 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 ++++++++++++- kernel/cpu.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-) 1 file changed, 12 insertions(+), 1 deletion(-)
Index: linux-stable/kernel/cpu.c --- a/kernel/cpu.c
=================================================================== +++ b/kernel/cpu.c
--- linux-stable.orig/kernel/cpu.c
+++ linux-stable/kernel/cpu.c
@@ -568,6 +568,7 @@ static int __ref _cpu_down(unsigned int @@ -568,6 +568,7 @@ static int __ref _cpu_down(unsigned int
.hcpu = hcpu, .hcpu = hcpu,
}; };

View File

@ -1,7 +1,7 @@
From: Jason Wessel <jason.wessel@windriver.com> From: Jason Wessel <jason.wessel@windriver.com>
Date: Thu, 28 Jul 2011 12:42:23 -0500 Date: Thu, 28 Jul 2011 12:42:23 -0500
Subject: kgdb/serial: Short term workaround 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: On 07/27/2011 04:37 PM, Thomas Gleixner wrote:
> - KGDB (not yet disabled) is reportedly unusable on -rt right now due > - KGDB (not yet disabled) is reportedly unusable on -rt right now due
@ -24,10 +24,8 @@ Jason.
kernel/debug/kdb/kdb_io.c | 6 ++---- kernel/debug/kdb/kdb_io.c | 6 ++----
3 files changed, 6 insertions(+), 6 deletions(-) 3 files changed, 6 insertions(+), 6 deletions(-)
Index: 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
--- linux-stable.orig/drivers/tty/serial/8250/8250_core.c
+++ linux-stable/drivers/tty/serial/8250/8250_core.c
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
#include <linux/nmi.h> #include <linux/nmi.h>
#include <linux/mutex.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); locked = spin_trylock_irqsave(&port->lock, flags);
else else
spin_lock_irqsave(&port->lock, flags); spin_lock_irqsave(&port->lock, flags);
Index: linux-stable/include/linux/kdb.h --- a/include/linux/kdb.h
=================================================================== +++ b/include/linux/kdb.h
--- linux-stable.orig/include/linux/kdb.h
+++ linux-stable/include/linux/kdb.h
@@ -115,7 +115,7 @@ extern int kdb_trap_printk; @@ -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, 0) int vkdb_printf(const char *fmt, va_list args);
extern __printf(1, 2) int kdb_printf(const char *, ...); 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 void kdb_init(int level) {}
static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, static inline int kdb_register(char *cmd, kdb_func_t func, char *usage,
char *help, short minlen) { return 0; } char *help, short minlen) { return 0; }
Index: linux-stable/kernel/debug/kdb/kdb_io.c --- a/kernel/debug/kdb/kdb_io.c
=================================================================== +++ b/kernel/debug/kdb/kdb_io.c
--- linux-stable.orig/kernel/debug/kdb/kdb_io.c
+++ linux-stable/kernel/debug/kdb/kdb_io.c
@@ -554,7 +554,6 @@ int vkdb_printf(const char *fmt, va_list @@ -554,7 +554,6 @@ int vkdb_printf(const char *fmt, va_list
int linecount; int linecount;
int colcount; int colcount;

View File

@ -1,7 +1,7 @@
Subject: latency-hist.patch Subject: latency-hist.patch
From: Carsten Emde <C.Emde@osadl.org> From: Carsten Emde <C.Emde@osadl.org>
Date: Tue, 19 Jul 2011 14:03:41 +0100 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 This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the 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 kernel/trace/trace_irqsoff.c | 11
10 files changed, 1612 insertions(+) 10 files changed, 1612 insertions(+)
Index: linux-stable/Documentation/trace/histograms.txt
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/Documentation/trace/histograms.txt +++ b/Documentation/trace/histograms.txt
@@ -0,0 +1,186 @@ @@ -0,0 +1,186 @@
+ Using the Linux Kernel Latency Histograms + Using the Linux Kernel Latency Histograms
+ +
@ -217,10 +215,8 @@ Index: linux-stable/Documentation/trace/histograms.txt
+is provided. +is provided.
+ +
+These data are also reset when the wakeup histogram is reset. +These data are also reset when the wakeup histogram is reset.
Index: linux-stable/include/linux/hrtimer.h --- a/include/linux/hrtimer.h
=================================================================== +++ b/include/linux/hrtimer.h
--- linux-stable.orig/include/linux/hrtimer.h
+++ linux-stable/include/linux/hrtimer.h
@@ -111,6 +111,9 @@ struct hrtimer { @@ -111,6 +111,9 @@ struct hrtimer {
enum hrtimer_restart (*function)(struct hrtimer *); enum hrtimer_restart (*function)(struct hrtimer *);
struct hrtimer_clock_base *base; struct hrtimer_clock_base *base;
@ -231,11 +227,9 @@ Index: linux-stable/include/linux/hrtimer.h
#ifdef CONFIG_TIMER_STATS #ifdef CONFIG_TIMER_STATS
int start_pid; int start_pid;
void *start_site; void *start_site;
Index: linux-stable/include/linux/sched.h --- a/include/linux/sched.h
=================================================================== +++ b/include/linux/sched.h
--- linux-stable.orig/include/linux/sched.h @@ -1409,6 +1409,12 @@ struct task_struct {
+++ linux-stable/include/linux/sched.h
@@ -1406,6 +1406,12 @@ struct task_struct {
unsigned long trace; unsigned long trace;
/* bitmask and counter of trace recursion */ /* bitmask and counter of trace recursion */
unsigned long trace_recursion; unsigned long trace_recursion;
@ -248,10 +242,8 @@ Index: linux-stable/include/linux/sched.h
#endif /* CONFIG_TRACING */ #endif /* CONFIG_TRACING */
#ifdef CONFIG_MEMCG /* memcg uses this to do batch job */ #ifdef CONFIG_MEMCG /* memcg uses this to do batch job */
struct memcg_batch_info { struct memcg_batch_info {
Index: linux-stable/include/trace/events/hist.h
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/include/trace/events/hist.h +++ b/include/trace/events/hist.h
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
+#undef TRACE_SYSTEM +#undef TRACE_SYSTEM
+#define TRACE_SYSTEM hist +#define TRACE_SYSTEM hist
@ -322,10 +314,8 @@ Index: linux-stable/include/trace/events/hist.h
+ +
+/* This part must be outside protection */ +/* This part must be outside protection */
+#include <trace/define_trace.h> +#include <trace/define_trace.h>
Index: linux-stable/include/trace/events/latency_hist.h
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/include/trace/events/latency_hist.h +++ b/include/trace/events/latency_hist.h
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
+#ifndef _LATENCY_HIST_H +#ifndef _LATENCY_HIST_H
+#define _LATENCY_HIST_H +#define _LATENCY_HIST_H
@ -356,10 +346,8 @@ Index: linux-stable/include/trace/events/latency_hist.h
+} +}
+ +
+#endif /* _LATENCY_HIST_H */ +#endif /* _LATENCY_HIST_H */
Index: linux-stable/kernel/hrtimer.c --- a/kernel/hrtimer.c
=================================================================== +++ b/kernel/hrtimer.c
--- linux-stable.orig/kernel/hrtimer.c
+++ linux-stable/kernel/hrtimer.c
@@ -51,6 +51,7 @@ @@ -51,6 +51,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
@ -368,7 +356,7 @@ Index: linux-stable/kernel/hrtimer.c
/* /*
* The timer bases: * 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 #endif
} }
@ -386,7 +374,7 @@ Index: linux-stable/kernel/hrtimer.c
hrtimer_set_expires_range_ns(timer, tim, delta_ns); hrtimer_set_expires_range_ns(timer, tim, delta_ns);
timer_stats_hrtimer_set_start_info(timer); 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 #ifdef CONFIG_HIGH_RES_TIMERS
@ -395,7 +383,7 @@ Index: linux-stable/kernel/hrtimer.c
/* /*
* High resolution timer interrupt * High resolution timer interrupt
* Called with interrupts disabled * Called with interrupts disabled
@@ -1310,6 +1324,15 @@ retry: @@ -1315,6 +1329,15 @@ retry:
timer = container_of(node, struct hrtimer, node); 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 * The immediate goal for using the softexpires is
* minimizing wakeups, not running timers at the * minimizing wakeups, not running timers at the
Index: linux-stable/kernel/trace/Kconfig --- a/kernel/trace/Kconfig
=================================================================== +++ b/kernel/trace/Kconfig
--- linux-stable.orig/kernel/trace/Kconfig
+++ linux-stable/kernel/trace/Kconfig
@@ -192,6 +192,24 @@ config IRQSOFF_TRACER @@ -192,6 +192,24 @@ config IRQSOFF_TRACER
enabled. This option and the preempt-off timing option can be enabled. This option and the preempt-off timing option can be
used together or separately.) used together or separately.)
@ -540,10 +526,8 @@ Index: linux-stable/kernel/trace/Kconfig
config ENABLE_DEFAULT_TRACERS config ENABLE_DEFAULT_TRACERS
bool "Trace process context switches and events" bool "Trace process context switches and events"
depends on !GENERIC_TRACER depends on !GENERIC_TRACER
Index: linux-stable/kernel/trace/Makefile --- a/kernel/trace/Makefile
=================================================================== +++ b/kernel/trace/Makefile
--- linux-stable.orig/kernel/trace/Makefile
+++ linux-stable/kernel/trace/Makefile
@@ -34,6 +34,10 @@ obj-$(CONFIG_FUNCTION_TRACER) += trace_f @@ -34,6 +34,10 @@ obj-$(CONFIG_FUNCTION_TRACER) += trace_f
obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
obj-$(CONFIG_PREEMPT_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_NOP_TRACER) += trace_nop.o
obj-$(CONFIG_STACK_TRACER) += trace_stack.o obj-$(CONFIG_STACK_TRACER) += trace_stack.o
obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
Index: linux-stable/kernel/trace/latency_hist.c
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/kernel/trace/latency_hist.c +++ b/kernel/trace/latency_hist.c
@@ -0,0 +1,1177 @@ @@ -0,0 +1,1177 @@
+/* +/*
+ * kernel/trace/latency_hist.c + * kernel/trace/latency_hist.c
@ -1737,10 +1719,8 @@ Index: linux-stable/kernel/trace/latency_hist.c
+} +}
+ +
+__initcall(latency_hist_init); +__initcall(latency_hist_init);
Index: linux-stable/kernel/trace/trace_irqsoff.c --- a/kernel/trace/trace_irqsoff.c
=================================================================== +++ b/kernel/trace/trace_irqsoff.c
--- linux-stable.orig/kernel/trace/trace_irqsoff.c
+++ linux-stable/kernel/trace/trace_irqsoff.c
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
#include <linux/fs.h> #include <linux/fs.h>

View File

@ -1,7 +1,7 @@
Subject: lglocks-rt.patch Subject: lglocks-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 15 Jun 2011 11:02:21 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
@ -9,10 +9,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/lglock.c | 54 ++++++++++++++++++++++++++++++++----------------- kernel/lglock.c | 54 ++++++++++++++++++++++++++++++++-----------------
2 files changed, 53 insertions(+), 20 deletions(-) 2 files changed, 53 insertions(+), 20 deletions(-)
Index: linux-stable/include/linux/lglock.h --- a/include/linux/lglock.h
=================================================================== +++ b/include/linux/lglock.h
--- linux-stable.orig/include/linux/lglock.h
+++ linux-stable/include/linux/lglock.h
@@ -42,22 +42,37 @@ @@ -42,22 +42,37 @@
#endif #endif
@ -53,10 +51,8 @@ Index: linux-stable/include/linux/lglock.h
void lg_lock_init(struct lglock *lg, char *name); void lg_lock_init(struct lglock *lg, char *name);
void lg_local_lock(struct lglock *lg); void lg_local_lock(struct lglock *lg);
Index: linux-stable/kernel/lglock.c --- a/kernel/lglock.c
=================================================================== +++ b/kernel/lglock.c
--- linux-stable.orig/kernel/lglock.c
+++ linux-stable/kernel/lglock.c
@@ -4,6 +4,15 @@ @@ -4,6 +4,15 @@
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/string.h> #include <linux/string.h>

View File

@ -1,17 +1,15 @@
Subject: list-add-list-last-entry.patch Subject: list-add-list-last-entry.patch
From: Peter Zijlstra <peterz@infradead.org> From: Peter Zijlstra <peterz@infradead.org>
Date: Tue, 21 Jun 2011 11:22:36 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
include/linux/list.h | 11 +++++++++++ include/linux/list.h | 11 +++++++++++
1 file changed, 11 insertions(+) 1 file changed, 11 insertions(+)
Index: linux-stable/include/linux/list.h --- a/include/linux/list.h
=================================================================== +++ b/include/linux/list.h
--- linux-stable.orig/include/linux/list.h
+++ linux-stable/include/linux/list.h
@@ -373,6 +373,17 @@ static inline void list_splice_tail_init @@ -373,6 +373,17 @@ static inline void list_splice_tail_init
(!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL) (!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL)

View File

@ -1,7 +1,7 @@
From: Paul Gortmaker <paul.gortmaker@windriver.com> From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Fri, 21 Jun 2013 15:07:25 -0400 Date: Fri, 21 Jun 2013 15:07:25 -0400
Subject: [PATCH] list_bl.h: make list head locking RT safe 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 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 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: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- ---
include/linux/list_bl.h | 24 ++++++++++++++++++++++-- include/linux/list_bl.h | 28 ++++++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-) 1 file changed, 26 insertions(+), 2 deletions(-)
Index: linux-stable/include/linux/list_bl.h --- a/include/linux/list_bl.h
=================================================================== +++ b/include/linux/list_bl.h
--- linux-stable.orig/include/linux/list_bl.h
+++ linux-stable/include/linux/list_bl.h
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
#define _LINUX_LIST_BL_H #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) 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) 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); bit_spin_lock(0, (unsigned long *)b);
+#else +#else
+ raw_spin_lock(&b->lock); + raw_spin_lock(&b->lock);
+#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
+ __set_bit(0, (unsigned long *)b); + __set_bit(0, (unsigned long *)b);
+#endif
+#endif +#endif
} }
@ -105,7 +105,9 @@ Index: linux-stable/include/linux/list_bl.h
+#ifndef CONFIG_PREEMPT_RT_BASE +#ifndef CONFIG_PREEMPT_RT_BASE
__bit_spin_unlock(0, (unsigned long *)b); __bit_spin_unlock(0, (unsigned long *)b);
+#else +#else
+#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
+ __clear_bit(0, (unsigned long *)b); + __clear_bit(0, (unsigned long *)b);
+#endif
+ raw_spin_unlock(&b->lock); + raw_spin_unlock(&b->lock);
+#endif +#endif
} }

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 21 Jul 2009 22:34:14 +0200 Date: Tue, 21 Jul 2009 22:34:14 +0200
Subject: rt: local_irq_* variants depending on RT/!RT 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 Add local_irq_*_(no)rt variant which are mainly used to break
interrupt disabled sections on PREEMPT_RT or to explicitely disable 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 +++++++++++++++++++ include/linux/irqflags.h | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-) 2 files changed, 20 insertions(+), 1 deletion(-)
Index: linux-stable/include/linux/interrupt.h --- a/include/linux/interrupt.h
=================================================================== +++ b/include/linux/interrupt.h
--- linux-stable.orig/include/linux/interrupt.h
+++ linux-stable/include/linux/interrupt.h
@@ -211,7 +211,7 @@ extern void devm_free_irq(struct device @@ -211,7 +211,7 @@ extern void devm_free_irq(struct device
#ifdef CONFIG_LOCKDEP #ifdef CONFIG_LOCKDEP
# define local_irq_enable_in_hardirq() do { } while (0) # define local_irq_enable_in_hardirq() do { } while (0)
@ -27,10 +25,8 @@ Index: linux-stable/include/linux/interrupt.h
#endif #endif
extern void disable_irq_nosync(unsigned int irq); extern void disable_irq_nosync(unsigned int irq);
Index: linux-stable/include/linux/irqflags.h --- a/include/linux/irqflags.h
=================================================================== +++ b/include/linux/irqflags.h
--- linux-stable.orig/include/linux/irqflags.h
+++ linux-stable/include/linux/irqflags.h
@@ -147,4 +147,23 @@ @@ -147,4 +147,23 @@
#endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */ #endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */

View File

@ -1,17 +1,15 @@
Subject: local-var.patch Subject: local-var.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jun 2011 18:40:37 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
include/linux/percpu.h | 5 +++++ include/linux/percpu.h | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
Index: linux-stable/include/linux/percpu.h --- a/include/linux/percpu.h
=================================================================== +++ b/include/linux/percpu.h
--- linux-stable.orig/include/linux/percpu.h
+++ linux-stable/include/linux/percpu.h
@@ -48,6 +48,11 @@ @@ -48,6 +48,11 @@
preempt_enable(); \ preempt_enable(); \
} while (0) } while (0)

View File

@ -1,17 +1,15 @@
Subject: local-vars-migrate-disable.patch Subject: local-vars-migrate-disable.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 28 Jun 2011 20:42:16 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
include/linux/percpu.h | 28 ++++++++++++++++++++++++---- include/linux/percpu.h | 28 ++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-) 1 file changed, 24 insertions(+), 4 deletions(-)
Index: linux-stable/include/linux/percpu.h --- a/include/linux/percpu.h
=================================================================== +++ b/include/linux/percpu.h
--- linux-stable.orig/include/linux/percpu.h
+++ linux-stable/include/linux/percpu.h
@@ -48,10 +48,30 @@ @@ -48,10 +48,30 @@
preempt_enable(); \ preempt_enable(); \
} while (0) } while (0)

View File

@ -1,7 +1,7 @@
Subject: localversion.patch Subject: localversion.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 08 Jul 2011 20:25:16 +0200 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: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> 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 + localversion-rt | 1 +
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
Index: linux-stable/localversion-rt
===================================================================
--- /dev/null --- /dev/null
+++ linux-stable/localversion-rt +++ b/localversion-rt
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+-rt1 +-rt3

View File

@ -1,7 +1,7 @@
Subject: lockdep-rt.patch Subject: lockdep-rt.patch
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 18:51:23 +0200 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> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
@ -9,10 +9,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/lockdep.c | 2 ++ kernel/lockdep.c | 2 ++
2 files changed, 9 insertions(+), 3 deletions(-) 2 files changed, 9 insertions(+), 3 deletions(-)
Index: linux-stable/include/linux/irqflags.h --- a/include/linux/irqflags.h
=================================================================== +++ b/include/linux/irqflags.h
--- linux-stable.orig/include/linux/irqflags.h
+++ linux-stable/include/linux/irqflags.h
@@ -25,8 +25,6 @@ @@ -25,8 +25,6 @@
# define trace_softirqs_enabled(p) ((p)->softirqs_enabled) # define trace_softirqs_enabled(p) ((p)->softirqs_enabled)
# define trace_hardirq_enter() do { current->hardirq_context++; } while (0) # define trace_hardirq_enter() do { current->hardirq_context++; } while (0)
@ -39,10 +37,8 @@ Index: linux-stable/include/linux/irqflags.h
#endif #endif
#if defined(CONFIG_IRQSOFF_TRACER) || \ #if defined(CONFIG_IRQSOFF_TRACER) || \
Index: linux-stable/kernel/lockdep.c --- a/kernel/lockdep.c
=================================================================== +++ b/kernel/lockdep.c
--- linux-stable.orig/kernel/lockdep.c
+++ linux-stable/kernel/lockdep.c
@@ -3541,6 +3541,7 @@ static void check_flags(unsigned long fl @@ -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 Subject: lockdep: Selftest: Only do hardirq context test for raw spinlock
From: Yong Zhang <yong.zhang0@gmail.com> From: Yong Zhang <yong.zhang0@gmail.com>
Date: Mon, 16 Apr 2012 15:01:56 +0800 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> From: Yong Zhang <yong.zhang@windriver.com>
@ -16,10 +16,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
lib/locking-selftest.c | 23 +++++++++++++++++++++++ lib/locking-selftest.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+) 1 file changed, 23 insertions(+)
Index: linux-stable/lib/locking-selftest.c --- a/lib/locking-selftest.c
=================================================================== +++ b/lib/locking-selftest.c
--- linux-stable.orig/lib/locking-selftest.c
+++ linux-stable/lib/locking-selftest.c
@@ -1175,6 +1175,7 @@ void locking_selftest(void) @@ -1175,6 +1175,7 @@ void locking_selftest(void)
printk(" --------------------------------------------------------------------------\n"); printk(" --------------------------------------------------------------------------\n");

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 6 Apr 2010 16:51:31 +0200 Date: Tue, 6 Apr 2010 16:51:31 +0200
Subject: md: raid5: Make raid5_percpu handling RT aware 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 __raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic 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 + drivers/md/raid5.h | 1 +
2 files changed, 9 insertions(+), 5 deletions(-) 2 files changed, 9 insertions(+), 5 deletions(-)
Index: linux-stable/drivers/md/raid5.c --- a/drivers/md/raid5.c
=================================================================== +++ b/drivers/md/raid5.c
--- linux-stable.orig/drivers/md/raid5.c
+++ linux-stable/drivers/md/raid5.c
@@ -1418,8 +1418,9 @@ static void raid_run_ops(struct stripe_h @@ -1418,8 +1418,9 @@ static void raid_run_ops(struct stripe_h
struct raid5_percpu *percpu; struct raid5_percpu *percpu;
unsigned long cpu; 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) static void raid5_build_block(struct stripe_head *sh, int i, int previous)
{ {
struct r5dev *dev = &sh->dev[i]; 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, previous,
&dd_idx, NULL); &dd_idx, NULL);
pr_debug("raid456: make_request, sector %llu logical %llu\n", 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); (unsigned long long)logical_sector);
sh = get_active_stripe(conf, new_sector, previous, 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; break;
} }
per_cpu_ptr(conf->percpu, cpu)->scribble = scribble; per_cpu_ptr(conf->percpu, cpu)->scribble = scribble;
@ -70,7 +68,7 @@ Index: linux-stable/drivers/md/raid5.c
} }
#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_HOTPLUG_CPU
conf->cpu_notify.notifier_call = raid456_cpu_notify; 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; return 1;
break; break;
case ALGORITHM_PARITY_0_6: case ALGORITHM_PARITY_0_6:
@ -79,11 +77,9 @@ Index: linux-stable/drivers/md/raid5.c
raid_disk == raid_disks - 1) raid_disk == raid_disks - 1)
return 1; return 1;
break; break;
Index: linux-stable/drivers/md/raid5.h --- a/drivers/md/raid5.h
=================================================================== +++ b/drivers/md/raid5.h
--- linux-stable.orig/drivers/md/raid5.h @@ -426,6 +426,7 @@ struct r5conf {
+++ linux-stable/drivers/md/raid5.h
@@ -425,6 +425,7 @@ struct r5conf {
int recovery_disabled; int recovery_disabled;
/* per cpu variables */ /* per cpu variables */
struct raid5_percpu { struct raid5_percpu {

View File

@ -1,7 +1,7 @@
Subject: sched: Check for idle task in might_sleep() Subject: sched: Check for idle task in might_sleep()
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 09 Jan 2013 23:34:08 +0100 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! 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 ++- kernel/sched/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-stable/kernel/sched/core.c --- a/kernel/sched/core.c
=================================================================== +++ b/kernel/sched/core.c
--- linux-stable.orig/kernel/sched/core.c @@ -7099,7 +7099,8 @@ void __might_sleep(const char *file, int
+++ linux-stable/kernel/sched/core.c
@@ -7481,7 +7481,8 @@ void __might_sleep(const char *file, int
static unsigned long prev_jiffy; /* ratelimiting */ static unsigned long prev_jiffy; /* ratelimiting */
rcu_sleep_check(); /* WARN_ON_ONCE() by default, no rate limit reqd. */ 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