* [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review
@ 2013-02-06 22:02 Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 1/6] drivers-tty-pl011-irq-disable-madness.patch Steven Rostedt
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
Dear RT Folks,
This is the RT stable review cycle of patch 3.2.38-rt57-rc1.
Please scream at me if I messed something up. Please test the patches too.
The -rc release will be uploaded to kernel.org and will be deleted when
the final release is out. This is just a review release (or release candidate).
The pre-releases will not be pushed to the git repository, only the
final release is.
If all goes well, this patch will be converted to the next main release
on 2/8/2013.
Enjoy,
-- Steve
To build 3.2.38-rt57-rc1 directly, the following patches should be applied:
http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz
http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.38.xz
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.38-rt57-rc1.patch.xz
You can also build from 3.2.38-rt56 by applying the incremental patch:
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.38-rt56-rt57-rc1.patch.xz
Changes from 3.2.38-rt56:
---
Steven Rostedt (1):
Linux 3.2.38-rt57-rc1
Thomas Gleixner (5):
drivers-tty-pl011-irq-disable-madness.patch
mmci: Remove bogus local_irq_save()
sched: Init idle->on_rq in init_idle()
sched: Check for idle task in might_sleep()
mm: swap: Initialize local locks early
----
drivers/mmc/host/mmci.c | 5 -----
drivers/tty/serial/amba-pl011.c | 15 ++++++++++-----
kernel/sched.c | 4 +++-
localversion-rt | 2 +-
mm/swap.c | 12 +++++++++---
5 files changed, 23 insertions(+), 15 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RT 1/6] drivers-tty-pl011-irq-disable-madness.patch
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
@ 2013-02-06 22:02 ` Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 2/6] mmci: Remove bogus local_irq_save() Steven Rostedt
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, John Kacur, stable-rt
[-- Attachment #1: 0001-drivers-tty-pl011-irq-disable-madness.patch.patch --]
[-- Type: text/plain, Size: 1482 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
drivers/tty/serial/amba-pl011.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index fe9f111..1fbaf66 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1761,13 +1761,19 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
clk_enable(uap->clk);
- local_irq_save(flags);
+ /*
+ * local_irq_save(flags);
+ *
+ * This local_irq_save() is nonsense. If we come in via sysrq
+ * handling then interrupts are already disabled. Aside of
+ * that the port.sysrq check is racy on SMP regardless.
+ */
if (uap->port.sysrq)
locked = 0;
else if (oops_in_progress)
- locked = spin_trylock(&uap->port.lock);
+ locked = spin_trylock_irqsave(&uap->port.lock, flags);
else
- spin_lock(&uap->port.lock);
+ spin_lock_irqsave(&uap->port.lock, flags);
/*
* First save the CR then disable the interrupts
@@ -1789,8 +1795,7 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
writew(old_cr, uap->port.membase + UART011_CR);
if (locked)
- spin_unlock(&uap->port.lock);
- local_irq_restore(flags);
+ spin_unlock_irqrestore(&uap->port.lock, flags);
clk_disable(uap->clk);
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 2/6] mmci: Remove bogus local_irq_save()
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 1/6] drivers-tty-pl011-irq-disable-madness.patch Steven Rostedt
@ 2013-02-06 22:02 ` Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 3/6] sched: Init idle->on_rq in init_idle() Steven Rostedt
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, John Kacur, stable-rt
[-- Attachment #1: 0002-mmci-Remove-bogus-local_irq_save.patch --]
[-- Type: text/plain, Size: 1243 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
On !RT interrupt runs with interrupts disabled. On RT it's in a
thread, so no need to disable interrupts at all.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
drivers/mmc/host/mmci.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 0726e59..5d7bf83 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -859,15 +859,12 @@ static irqreturn_t mmci_pio_irq(int irq, void *dev_id)
struct sg_mapping_iter *sg_miter = &host->sg_miter;
struct variant_data *variant = host->variant;
void __iomem *base = host->base;
- unsigned long flags;
u32 status;
status = readl(base + MMCISTATUS);
dev_dbg(mmc_dev(host->mmc), "irq1 (pio) %08x\n", status);
- local_irq_save(flags);
-
do {
unsigned int remain, len;
char *buffer;
@@ -907,8 +904,6 @@ static irqreturn_t mmci_pio_irq(int irq, void *dev_id)
sg_miter_stop(sg_miter);
- local_irq_restore(flags);
-
/*
* If we have less than the fifo 'half-full' threshold to transfer,
* trigger a PIO interrupt as soon as any data is available.
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 3/6] sched: Init idle->on_rq in init_idle()
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 1/6] drivers-tty-pl011-irq-disable-madness.patch Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 2/6] mmci: Remove bogus local_irq_save() Steven Rostedt
@ 2013-02-06 22:02 ` Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 4/6] sched: Check for idle task in might_sleep() Steven Rostedt
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, John Kacur, stable-rt
[-- Attachment #1: 0003-sched-Init-idle-on_rq-in-init_idle.patch --]
[-- Type: text/plain, Size: 579 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/sched.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/kernel/sched.c b/kernel/sched.c
index b318b4a..20b228f 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -6519,6 +6519,7 @@ void __cpuinit init_idle(struct task_struct *idle, int cpu)
rcu_read_unlock();
rq->curr = rq->idle = idle;
+ idle->on_rq = 1;
#if defined(CONFIG_SMP)
idle->on_cpu = 1;
#endif
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 4/6] sched: Check for idle task in might_sleep()
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
` (2 preceding siblings ...)
2013-02-06 22:02 ` [PATCH RT 3/6] sched: Init idle->on_rq in init_idle() Steven Rostedt
@ 2013-02-06 22:02 ` Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 5/6] mm: swap: Initialize local locks early Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 6/6] Linux 3.2.38-rt57-rc1 Steven Rostedt
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, John Kacur, stable-rt
[-- Attachment #1: 0004-sched-Check-for-idle-task-in-might_sleep.patch --]
[-- Type: text/plain, Size: 960 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
Idle is not allowed to call sleeping functions ever!
Cc: stable-rt@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/sched.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/sched.c b/kernel/sched.c
index 20b228f..14219ed 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -8937,7 +8937,8 @@ void __might_sleep(const char *file, int line, int preempt_offset)
static unsigned long prev_jiffy; /* ratelimiting */
rcu_sleep_check(); /* WARN_ON_ONCE() by default, no rate limit reqd. */
- if ((preempt_count_equals(preempt_offset) && !irqs_disabled()) ||
+ if ((preempt_count_equals(preempt_offset) && !irqs_disabled() &&
+ !is_idle_task(current)) ||
system_state != SYSTEM_RUNNING || oops_in_progress)
return;
if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 5/6] mm: swap: Initialize local locks early
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
` (3 preceding siblings ...)
2013-02-06 22:02 ` [PATCH RT 4/6] sched: Check for idle task in might_sleep() Steven Rostedt
@ 2013-02-06 22:02 ` Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 6/6] Linux 3.2.38-rt57-rc1 Steven Rostedt
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, John Kacur, stable-rt
[-- Attachment #1: 0005-mm-swap-Initialize-local-locks-early.patch --]
[-- Type: text/plain, Size: 1103 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
mm/swap.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/mm/swap.c b/mm/swap.c
index e3f7d6f..c428897 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -772,6 +772,15 @@ unsigned pagevec_lookup(struct pagevec *pvec, struct address_space *mapping,
EXPORT_SYMBOL(pagevec_lookup);
+/* Early setup for the local locks */
+static int __init swap_init_locks(void)
+{
+ local_irq_lock_init(rotate_lock);
+ local_irq_lock_init(swap_lock);
+ return 1;
+}
+early_initcall(swap_init_locks);
+
unsigned pagevec_lookup_tag(struct pagevec *pvec, struct address_space *mapping,
pgoff_t *index, int tag, unsigned nr_pages)
{
@@ -789,9 +798,6 @@ void __init swap_setup(void)
{
unsigned long megs = totalram_pages >> (20 - PAGE_SHIFT);
- local_irq_lock_init(rotate_lock);
- local_irq_lock_init(swap_lock);
-
#ifdef CONFIG_SWAP
bdi_init(swapper_space.backing_dev_info);
#endif
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 6/6] Linux 3.2.38-rt57-rc1
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
` (4 preceding siblings ...)
2013-02-06 22:02 ` [PATCH RT 5/6] mm: swap: Initialize local locks early Steven Rostedt
@ 2013-02-06 22:02 ` Steven Rostedt
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-02-06 22:02 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
[-- Attachment #1: 0006-Linux-3.2.38-rt57-rc1.patch --]
[-- Type: text/plain, Size: 289 bytes --]
From: Steven Rostedt <srostedt@redhat.com>
---
localversion-rt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/localversion-rt b/localversion-rt
index fdb0f88..c12fc9d 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt56
+-rt57-rc1
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-02-06 22:04 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-06 22:02 [PATCH RT 0/6] [ANNOUNCE] 3.2.38-rt57-rc1 stable review Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 1/6] drivers-tty-pl011-irq-disable-madness.patch Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 2/6] mmci: Remove bogus local_irq_save() Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 3/6] sched: Init idle->on_rq in init_idle() Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 4/6] sched: Check for idle task in might_sleep() Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 5/6] mm: swap: Initialize local locks early Steven Rostedt
2013-02-06 22:02 ` [PATCH RT 6/6] Linux 3.2.38-rt57-rc1 Steven Rostedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).