* [patch 00/12] arm: raw_spinlock annotations
@ 2010-02-17 13:19 Thomas Gleixner
2010-02-17 13:21 ` [patch 01/12] arm: Convert dma_spin_lock to raw_spinlock Thomas Gleixner
` (12 more replies)
0 siblings, 13 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:19 UTC (permalink / raw)
To: linux-arm-kernel
Preempt-RT converts spinlocks to sleeping spinlocks, but some
spinlocks need to be kept as real spinlocks. In 2.6.33 we merged the
spinlock namespace cleanup which allows us to annotate those
locks. The lock type is change to raw_spinlock which is the same as a
common spinlock in !RT kernels.
The following series is a collection of lock annotations from the
preempt-rt tree. Please merge into 2.6.34.
Thanks,
tglx
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 01/12] arm: Convert dma_spin_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
@ 2010-02-17 13:21 ` Thomas Gleixner
2010-02-17 13:21 ` [patch 02/12] arm: Convert stop_lock " Thomas Gleixner
` (11 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:21 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-dma-lock-to-raw-spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/89de0a20/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 02/12] arm: Convert stop_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
2010-02-17 13:21 ` [patch 01/12] arm: Convert dma_spin_lock to raw_spinlock Thomas Gleixner
@ 2010-02-17 13:21 ` Thomas Gleixner
2010-02-17 13:21 ` [patch 03/12] arm-convert-die_lock-undef_lock-to-raw-spinlocks.patch Thomas Gleixner
` (10 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:21 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-stop-lock-to-raw-spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/8a95639c/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 03/12] arm-convert-die_lock-undef_lock-to-raw-spinlocks.patch
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
2010-02-17 13:21 ` [patch 01/12] arm: Convert dma_spin_lock to raw_spinlock Thomas Gleixner
2010-02-17 13:21 ` [patch 02/12] arm: Convert stop_lock " Thomas Gleixner
@ 2010-02-17 13:21 ` Thomas Gleixner
2010-02-17 13:21 ` [patch 04/12] arm: Convert l2x0_lock to raw_spinlock Thomas Gleixner
` (9 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:21 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-die_lock-undef_lock-to-raw-spinlocks.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/374915af/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 04/12] arm: Convert l2x0_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (2 preceding siblings ...)
2010-02-17 13:21 ` [patch 03/12] arm-convert-die_lock-undef_lock-to-raw-spinlocks.patch Thomas Gleixner
@ 2010-02-17 13:21 ` Thomas Gleixner
2010-02-17 13:22 ` [patch 05/12] arm: Convert cpu_asid_lock " Thomas Gleixner
` (8 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:21 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-cache-l2x0-lock-to-raw-spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/d8420fc3/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 05/12] arm: Convert cpu_asid_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (3 preceding siblings ...)
2010-02-17 13:21 ` [patch 04/12] arm: Convert l2x0_lock to raw_spinlock Thomas Gleixner
@ 2010-02-17 13:22 ` Thomas Gleixner
2010-02-17 13:22 ` [patch 06/12] arm: Convert xscale minicache_lock " Thomas Gleixner
` (7 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:22 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-cpu_asid_lock-to-raw_spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/42126210/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 06/12] arm: Convert xscale minicache_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (4 preceding siblings ...)
2010-02-17 13:22 ` [patch 05/12] arm: Convert cpu_asid_lock " Thomas Gleixner
@ 2010-02-17 13:22 ` Thomas Gleixner
2010-02-17 13:22 ` [patch 07/12] arm: Convert v4 " Thomas Gleixner
` (6 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:22 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-xscale-minicache_lock-to-raw_spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/cc2cc271/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 07/12] arm: Convert v4 minicache_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (5 preceding siblings ...)
2010-02-17 13:22 ` [patch 06/12] arm: Convert xscale minicache_lock " Thomas Gleixner
@ 2010-02-17 13:22 ` Thomas Gleixner
2010-02-17 13:23 ` [patch 08/12] arm: Convert v6_lock " Thomas Gleixner
` (5 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:22 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-v4-minicache_lock-to-raw_spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/0b7908b4/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 08/12] arm: Convert v6_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (6 preceding siblings ...)
2010-02-17 13:22 ` [patch 07/12] arm: Convert v4 " Thomas Gleixner
@ 2010-02-17 13:23 ` Thomas Gleixner
2010-02-17 13:23 ` [patch 09/12] arm: Convert footbridge gpio and led locks " Thomas Gleixner
` (4 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:23 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-v6_lock-to-raw_spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/b03b9f25/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 09/12] arm: Convert footbridge gpio and led locks to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (7 preceding siblings ...)
2010-02-17 13:23 ` [patch 08/12] arm: Convert v6_lock " Thomas Gleixner
@ 2010-02-17 13:23 ` Thomas Gleixner
2010-02-17 13:23 ` [patch 10/12] arm: Convert integrator cm_lock and v3_lock " Thomas Gleixner
` (3 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:23 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-footbridge-gpio-and-led-locks-to-raw_spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/09dbc34c/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 10/12] arm: Convert integrator cm_lock and v3_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (8 preceding siblings ...)
2010-02-17 13:23 ` [patch 09/12] arm: Convert footbridge gpio and led locks " Thomas Gleixner
@ 2010-02-17 13:23 ` Thomas Gleixner
2010-02-17 13:23 ` [patch 11/12] arm: Convert ixp4xx pci_lock " Thomas Gleixner
` (2 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:23 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-integrator-locks-to-raw-spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/5b48582e/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 11/12] arm: Convert ixp4xx pci_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (9 preceding siblings ...)
2010-02-17 13:23 ` [patch 10/12] arm: Convert integrator cm_lock and v3_lock " Thomas Gleixner
@ 2010-02-17 13:23 ` Thomas Gleixner
2010-02-17 13:23 ` [patch 12/12] arm: Convert shark leds_lock " Thomas Gleixner
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:23 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-convert-ixp4xx-pci-lock-to-raw-spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/33b418ff/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 12/12] arm: Convert shark leds_lock to raw_spinlock
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (10 preceding siblings ...)
2010-02-17 13:23 ` [patch 11/12] arm: Convert ixp4xx pci_lock " Thomas Gleixner
@ 2010-02-17 13:23 ` Thomas Gleixner
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
12 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-02-17 13:23 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: arm-shark-convert-leds-lock-to-raw_spinlock.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100217/3b69d64f/attachment.el>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 00/12] arm: raw_spinlock annotations
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
` (11 preceding siblings ...)
2010-02-17 13:23 ` [patch 12/12] arm: Convert shark leds_lock " Thomas Gleixner
@ 2010-10-19 14:37 ` Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 01/12] ARM: Convert dma_spin_lock to raw_spinlock Uwe Kleine-König
` (12 more replies)
12 siblings, 13 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:37 UTC (permalink / raw)
To: linux-arm-kernel
Hello,
On Wed, Feb 17, 2010 at 01:19:56PM -0000, Thomas Gleixner wrote:
> Preempt-RT converts spinlocks to sleeping spinlocks, but some
> spinlocks need to be kept as real spinlocks. In 2.6.33 we merged the
> spinlock namespace cleanup which allows us to annotate those
> locks. The lock type is change to raw_spinlock which is the same as a
> common spinlock in !RT kernels.
>
> The following series is a collection of lock annotations from the
> preempt-rt tree. Please merge into 2.6.34.
Back then I imported these changes in my repo and found them now when
cleaning it up. I once tried to get them in[1], and Russell answered:
Thomas asked me about a pull request for his patches, and I said
no because they're spread across many different mach-*
directories. So this isn't helpful.
I don't understand that critism, as apart from "ARM: footbridge: Convert
gpio and led locks to raw_spinlock" most patches (9) only touch a single
file, the others only touch a single lock and fix all callers. The
footbridge patch admittedly is not that nice, but that's because the
touched lock is used all across the tree.
While cleaning up my repo I refound the patches and rebased them on top
of today's Linus' tree and only needed to fix up the l2x0_lock patch as
in the meantime a new usage hit mainline.
Best regards
Uwe
[1] http://thread.gmane.org/gmane.linux.ports.arm.kernel/74675
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH 01/12] ARM: Convert dma_spin_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
@ 2010-10-19 14:38 ` Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 02/12] ARM: smp: Convert stop_lock " Uwe Kleine-König
` (11 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:38 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
dma_spin_lock needs to be a real spinlock on preempt-rt. Convert it to
a raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[ukl: s/ / / on the line declaring dma_spin_lock]
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/include/asm/dma.h | 6 +++---
arch/arm/kernel/dma.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h
index ca51143..644a160 100644
--- a/arch/arm/include/asm/dma.h
+++ b/arch/arm/include/asm/dma.h
@@ -31,18 +31,18 @@
#define DMA_MODE_CASCADE 0xc0
#define DMA_AUTOINIT 0x10
-extern spinlock_t dma_spin_lock;
+extern raw_spinlock_t dma_spin_lock;
static inline unsigned long claim_dma_lock(void)
{
unsigned long flags;
- spin_lock_irqsave(&dma_spin_lock, flags);
+ raw_spin_lock_irqsave(&dma_spin_lock, flags);
return flags;
}
static inline void release_dma_lock(unsigned long flags)
{
- spin_unlock_irqrestore(&dma_spin_lock, flags);
+ raw_spin_unlock_irqrestore(&dma_spin_lock, flags);
}
/* Clear the 'DMA Pointer Flip Flop'.
diff --git a/arch/arm/kernel/dma.c b/arch/arm/kernel/dma.c
index 2c4a185..7b829d9 100644
--- a/arch/arm/kernel/dma.c
+++ b/arch/arm/kernel/dma.c
@@ -23,7 +23,7 @@
#include <asm/mach/dma.h>
-DEFINE_SPINLOCK(dma_spin_lock);
+DEFINE_RAW_SPINLOCK(dma_spin_lock);
EXPORT_SYMBOL(dma_spin_lock);
static dma_t *dma_chan[MAX_DMA_CHANNELS];
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 02/12] ARM: smp: Convert stop_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 01/12] ARM: Convert dma_spin_lock to raw_spinlock Uwe Kleine-König
@ 2010-10-19 14:38 ` Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 03/12] ARM: Convert die_lock and undef_lock to raw_spinlocks Uwe Kleine-König
` (10 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:38 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
stop_lock needs to be a real spinlock on preempt-rt. Convert it to
a raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/kernel/smp.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 40dc74f2..8b242af 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -464,7 +464,7 @@ void __cpuinit percpu_timer_setup(void)
local_timer_setup(evt);
}
-static DEFINE_SPINLOCK(stop_lock);
+static DEFINE_RAW_SPINLOCK(stop_lock);
/*
* ipi_cpu_stop - handle IPI from smp_send_stop()
@@ -473,10 +473,10 @@ static void ipi_cpu_stop(unsigned int cpu)
{
if (system_state == SYSTEM_BOOTING ||
system_state == SYSTEM_RUNNING) {
- spin_lock(&stop_lock);
+ raw_spin_lock(&stop_lock);
printk(KERN_CRIT "CPU%u: stopping\n", cpu);
dump_stack();
- spin_unlock(&stop_lock);
+ raw_spin_unlock(&stop_lock);
}
set_cpu_online(cpu, false);
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 03/12] ARM: Convert die_lock and undef_lock to raw_spinlocks
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 01/12] ARM: Convert dma_spin_lock to raw_spinlock Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 02/12] ARM: smp: Convert stop_lock " Uwe Kleine-König
@ 2010-10-19 14:38 ` Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 04/12] ARM: Convert l2x0_lock to raw_spinlock Uwe Kleine-König
` (9 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:38 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
die_lock and undef_lock need to be real spinlocks on
preempt-rt. Convert them to raw_spinlock. No change for !RT kernels.
Make die_lock static while at it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/kernel/traps.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index cda78d5..eb9a240 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -257,7 +257,7 @@ static int __die(const char *str, int err, struct thread_info *thread, struct pt
return ret;
}
-DEFINE_SPINLOCK(die_lock);
+static DEFINE_RAW_SPINLOCK(die_lock);
/*
* This function is protected against re-entrancy.
@@ -269,7 +269,7 @@ void die(const char *str, struct pt_regs *regs, int err)
oops_enter();
- spin_lock_irq(&die_lock);
+ raw_spin_lock_irq(&die_lock);
console_verbose();
bust_spinlocks(1);
ret = __die(str, err, thread, regs);
@@ -279,7 +279,7 @@ void die(const char *str, struct pt_regs *regs, int err)
bust_spinlocks(0);
add_taint(TAINT_DIE);
- spin_unlock_irq(&die_lock);
+ raw_spin_unlock_irq(&die_lock);
oops_exit();
if (in_interrupt())
@@ -304,24 +304,24 @@ void arm_notify_die(const char *str, struct pt_regs *regs,
}
static LIST_HEAD(undef_hook);
-static DEFINE_SPINLOCK(undef_lock);
+static DEFINE_RAW_SPINLOCK(undef_lock);
void register_undef_hook(struct undef_hook *hook)
{
unsigned long flags;
- spin_lock_irqsave(&undef_lock, flags);
+ raw_spin_lock_irqsave(&undef_lock, flags);
list_add(&hook->node, &undef_hook);
- spin_unlock_irqrestore(&undef_lock, flags);
+ raw_spin_unlock_irqrestore(&undef_lock, flags);
}
void unregister_undef_hook(struct undef_hook *hook)
{
unsigned long flags;
- spin_lock_irqsave(&undef_lock, flags);
+ raw_spin_lock_irqsave(&undef_lock, flags);
list_del(&hook->node);
- spin_unlock_irqrestore(&undef_lock, flags);
+ raw_spin_unlock_irqrestore(&undef_lock, flags);
}
static int call_undef_hook(struct pt_regs *regs, unsigned int instr)
@@ -330,12 +330,12 @@ static int call_undef_hook(struct pt_regs *regs, unsigned int instr)
unsigned long flags;
int (*fn)(struct pt_regs *regs, unsigned int instr) = NULL;
- spin_lock_irqsave(&undef_lock, flags);
+ raw_spin_lock_irqsave(&undef_lock, flags);
list_for_each_entry(hook, &undef_hook, node)
if ((instr & hook->instr_mask) == hook->instr_val &&
(regs->ARM_cpsr & hook->cpsr_mask) == hook->cpsr_val)
fn = hook->fn;
- spin_unlock_irqrestore(&undef_lock, flags);
+ raw_spin_unlock_irqrestore(&undef_lock, flags);
return fn ? fn(regs, instr) : 1;
}
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 04/12] ARM: Convert l2x0_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (2 preceding siblings ...)
2010-10-19 14:38 ` [PATCH 03/12] ARM: Convert die_lock and undef_lock to raw_spinlocks Uwe Kleine-König
@ 2010-10-19 14:38 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 05/12] ARM: Convert cpu_asid_lock " Uwe Kleine-König
` (8 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:38 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
l2x20_lock needs to be a real spinlock on preempt-rt. Convert it to a
raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mm/cache-l2x0.c | 34 +++++++++++++++++-----------------
1 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index 9982eb3..d2ae7da 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -26,7 +26,7 @@
#define CACHE_LINE_SIZE 32
static void __iomem *l2x0_base;
-static DEFINE_SPINLOCK(l2x0_lock);
+static DEFINE_RAW_SPINLOCK(l2x0_lock);
static uint32_t l2x0_way_mask; /* Bitmask of active ways */
static inline void cache_wait(void __iomem *reg, unsigned long mask)
@@ -98,9 +98,9 @@ static void l2x0_cache_sync(void)
{
unsigned long flags;
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
cache_sync();
- spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
}
static inline void l2x0_inv_all(void)
@@ -108,11 +108,11 @@ static inline void l2x0_inv_all(void)
unsigned long flags;
/* invalidate all ways */
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
writel_relaxed(l2x0_way_mask, l2x0_base + L2X0_INV_WAY);
cache_wait(l2x0_base + L2X0_INV_WAY, l2x0_way_mask);
cache_sync();
- spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
}
static void l2x0_inv_range(unsigned long start, unsigned long end)
@@ -120,7 +120,7 @@ static void l2x0_inv_range(unsigned long start, unsigned long end)
void __iomem *base = l2x0_base;
unsigned long flags;
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
if (start & (CACHE_LINE_SIZE - 1)) {
start &= ~(CACHE_LINE_SIZE - 1);
debug_writel(0x03);
@@ -145,13 +145,13 @@ static void l2x0_inv_range(unsigned long start, unsigned long end)
}
if (blk_end < end) {
- spin_unlock_irqrestore(&l2x0_lock, flags);
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
}
}
cache_wait(base + L2X0_INV_LINE_PA, 1);
cache_sync();
- spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
}
static void l2x0_clean_range(unsigned long start, unsigned long end)
@@ -159,7 +159,7 @@ static void l2x0_clean_range(unsigned long start, unsigned long end)
void __iomem *base = l2x0_base;
unsigned long flags;
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
start &= ~(CACHE_LINE_SIZE - 1);
while (start < end) {
unsigned long blk_end = start + min(end - start, 4096UL);
@@ -170,13 +170,13 @@ static void l2x0_clean_range(unsigned long start, unsigned long end)
}
if (blk_end < end) {
- spin_unlock_irqrestore(&l2x0_lock, flags);
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
}
}
cache_wait(base + L2X0_CLEAN_LINE_PA, 1);
cache_sync();
- spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
}
static void l2x0_flush_range(unsigned long start, unsigned long end)
@@ -184,7 +184,7 @@ static void l2x0_flush_range(unsigned long start, unsigned long end)
void __iomem *base = l2x0_base;
unsigned long flags;
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
start &= ~(CACHE_LINE_SIZE - 1);
while (start < end) {
unsigned long blk_end = start + min(end - start, 4096UL);
@@ -197,13 +197,13 @@ static void l2x0_flush_range(unsigned long start, unsigned long end)
debug_writel(0x00);
if (blk_end < end) {
- spin_unlock_irqrestore(&l2x0_lock, flags);
- spin_lock_irqsave(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_lock_irqsave(&l2x0_lock, flags);
}
}
cache_wait(base + L2X0_CLEAN_INV_LINE_PA, 1);
cache_sync();
- spin_unlock_irqrestore(&l2x0_lock, flags);
+ raw_spin_unlock_irqrestore(&l2x0_lock, flags);
}
void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 05/12] ARM: Convert cpu_asid_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (3 preceding siblings ...)
2010-10-19 14:38 ` [PATCH 04/12] ARM: Convert l2x0_lock to raw_spinlock Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 06/12] ARM: Convert xscale minicache_lock " Uwe Kleine-König
` (7 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
cpu_asid_lock needs to be a real spinlock on preempt-rt. Convert it to
a raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mm/context.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
index b0ee9ba..f3a9336 100644
--- a/arch/arm/mm/context.c
+++ b/arch/arm/mm/context.c
@@ -16,7 +16,7 @@
#include <asm/mmu_context.h>
#include <asm/tlbflush.h>
-static DEFINE_SPINLOCK(cpu_asid_lock);
+static DEFINE_RAW_SPINLOCK(cpu_asid_lock);
unsigned int cpu_last_asid = ASID_FIRST_VERSION;
#ifdef CONFIG_SMP
DEFINE_PER_CPU(struct mm_struct *, current_mm);
@@ -117,7 +117,7 @@ void __new_context(struct mm_struct *mm)
{
unsigned int asid;
- spin_lock(&cpu_asid_lock);
+ raw_spin_lock(&cpu_asid_lock);
#ifdef CONFIG_SMP
/*
* Check the ASID again, in case the change was broadcast from
@@ -125,7 +125,7 @@ void __new_context(struct mm_struct *mm)
*/
if (unlikely(((mm->context.id ^ cpu_last_asid) >> ASID_BITS) == 0)) {
cpumask_set_cpu(smp_processor_id(), mm_cpumask(mm));
- spin_unlock(&cpu_asid_lock);
+ raw_spin_unlock(&cpu_asid_lock);
return;
}
#endif
@@ -153,5 +153,5 @@ void __new_context(struct mm_struct *mm)
}
set_mm_context(mm, asid);
- spin_unlock(&cpu_asid_lock);
+ raw_spin_unlock(&cpu_asid_lock);
}
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 06/12] ARM: Convert xscale minicache_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (4 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 05/12] ARM: Convert cpu_asid_lock " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 07/12] ARM: Convert v4 " Uwe Kleine-König
` (6 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
minicache_lock needs to be a real spinlock on preempt-rt. Convert it
to a raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mm/copypage-xscale.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c
index 9920c0a..e73cf5c 100644
--- a/arch/arm/mm/copypage-xscale.c
+++ b/arch/arm/mm/copypage-xscale.c
@@ -32,7 +32,7 @@
#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
L_PTE_MT_MINICACHE)
-static DEFINE_SPINLOCK(minicache_lock);
+static DEFINE_RAW_SPINLOCK(minicache_lock);
/*
* XScale mini-dcache optimised copy_user_highpage
@@ -98,14 +98,14 @@ void xscale_mc_copy_user_highpage(struct page *to, struct page *from,
if (test_and_clear_bit(PG_dcache_dirty, &from->flags))
__flush_dcache_page(page_mapping(from), from);
- spin_lock(&minicache_lock);
+ raw_spin_lock(&minicache_lock);
set_pte_ext(TOP_PTE(COPYPAGE_MINICACHE), pfn_pte(page_to_pfn(from), minicache_pgprot), 0);
flush_tlb_kernel_page(COPYPAGE_MINICACHE);
mc_copy_user_page((void *)COPYPAGE_MINICACHE, kto);
- spin_unlock(&minicache_lock);
+ raw_spin_unlock(&minicache_lock);
kunmap_atomic(kto, KM_USER1);
}
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 07/12] ARM: Convert v4 minicache_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (5 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 06/12] ARM: Convert xscale minicache_lock " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 08/12] ARM: Convert v6_lock " Uwe Kleine-König
` (5 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
minicache_lock needs to be a real spinlock on preempt-rt. Convert it
to a raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mm/copypage-v4mc.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index 598c51a..bb17acd 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -30,7 +30,7 @@
#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
L_PTE_MT_MINICACHE)
-static DEFINE_SPINLOCK(minicache_lock);
+static DEFINE_RAW_SPINLOCK(minicache_lock);
/*
* ARMv4 mini-dcache optimised copy_user_highpage
@@ -76,14 +76,14 @@ void v4_mc_copy_user_highpage(struct page *to, struct page *from,
if (test_and_clear_bit(PG_dcache_dirty, &from->flags))
__flush_dcache_page(page_mapping(from), from);
- spin_lock(&minicache_lock);
+ raw_spin_lock(&minicache_lock);
set_pte_ext(TOP_PTE(0xffff8000), pfn_pte(page_to_pfn(from), minicache_pgprot), 0);
flush_tlb_kernel_page(0xffff8000);
mc_copy_user_page((void *)0xffff8000, kto);
- spin_unlock(&minicache_lock);
+ raw_spin_unlock(&minicache_lock);
kunmap_atomic(kto, KM_USER1);
}
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 08/12] ARM: Convert v6_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (6 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 07/12] ARM: Convert v4 " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 09/12] ARM: footbridge: Convert gpio and led locks " Uwe Kleine-König
` (4 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
v6_lock needs to be a real spinlock on preempt-rt. Convert it to a
raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mm/copypage-v6.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c
index f55fa10..32bd1fb 100644
--- a/arch/arm/mm/copypage-v6.c
+++ b/arch/arm/mm/copypage-v6.c
@@ -27,7 +27,7 @@
#define from_address (0xffff8000)
#define to_address (0xffffc000)
-static DEFINE_SPINLOCK(v6_lock);
+static DEFINE_RAW_SPINLOCK(v6_lock);
/*
* Copy the user page. No aliasing to deal with so we can just
@@ -89,7 +89,7 @@ static void v6_copy_user_highpage_aliasing(struct page *to,
* Now copy the page using the same cache colour as the
* pages ultimate destination.
*/
- spin_lock(&v6_lock);
+ raw_spin_lock(&v6_lock);
set_pte_ext(TOP_PTE(from_address) + offset, pfn_pte(page_to_pfn(from), PAGE_KERNEL), 0);
set_pte_ext(TOP_PTE(to_address) + offset, pfn_pte(page_to_pfn(to), PAGE_KERNEL), 0);
@@ -102,7 +102,7 @@ static void v6_copy_user_highpage_aliasing(struct page *to,
copy_page((void *)kto, (void *)kfrom);
- spin_unlock(&v6_lock);
+ raw_spin_unlock(&v6_lock);
}
/*
@@ -122,13 +122,13 @@ static void v6_clear_user_highpage_aliasing(struct page *page, unsigned long vad
* Now clear the page using the same cache colour as
* the pages ultimate destination.
*/
- spin_lock(&v6_lock);
+ raw_spin_lock(&v6_lock);
set_pte_ext(TOP_PTE(to_address) + offset, pfn_pte(page_to_pfn(page), PAGE_KERNEL), 0);
flush_tlb_kernel_page(to);
clear_page((void *)to);
- spin_unlock(&v6_lock);
+ raw_spin_unlock(&v6_lock);
}
struct cpu_user_fns v6_user_fns __initdata = {
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 09/12] ARM: footbridge: Convert gpio and led locks to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (7 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 08/12] ARM: Convert v6_lock " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 10/12] ARM: integrator: Convert cm_lock and v3_lock " Uwe Kleine-König
` (3 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
nw_gpio_lock and led_lock need to be real spinlocks on
preempt-rt. Convert it them to raw_spinlock and fixup all users. No
change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
| 2 +-
| 14 +++++++-------
| 10 +++++-----
drivers/char/ds1620.c | 8 ++++----
drivers/char/nwflash.c | 4 ++--
drivers/mtd/maps/dc21285.c | 4 ++--
sound/oss/waveartist.c | 4 ++--
7 files changed, 23 insertions(+), 23 deletions(-)
--git a/arch/arm/mach-footbridge/include/mach/hardware.h b/arch/arm/mach-footbridge/include/mach/hardware.h
index 51dd902..eee37b6 100644
--- a/arch/arm/mach-footbridge/include/mach/hardware.h
+++ b/arch/arm/mach-footbridge/include/mach/hardware.h
@@ -86,7 +86,7 @@
#define CPLD_FLASH_WR_ENABLE 1
#ifndef __ASSEMBLY__
-extern spinlock_t nw_gpio_lock;
+extern raw_spinlock_t nw_gpio_lock;
extern void nw_gpio_modify_op(unsigned int mask, unsigned int set);
extern void nw_gpio_modify_io(unsigned int mask, unsigned int in);
extern unsigned int nw_gpio_read(void);
--git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c
index ac7ffa6..c903dad 100644
--- a/arch/arm/mach-footbridge/netwinder-hw.c
+++ b/arch/arm/mach-footbridge/netwinder-hw.c
@@ -68,7 +68,7 @@ static inline void wb977_ww(int reg, int val)
/*
* This is a lock for accessing ports GP1_IO_BASE and GP2_IO_BASE
*/
-DEFINE_SPINLOCK(nw_gpio_lock);
+DEFINE_RAW_SPINLOCK(nw_gpio_lock);
EXPORT_SYMBOL(nw_gpio_lock);
static unsigned int current_gpio_op;
@@ -327,9 +327,9 @@ static inline void wb977_init_gpio(void)
/*
* Set Group1/Group2 outputs
*/
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_gpio_modify_op(-1, GPIO_RED_LED | GPIO_FAN);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
}
/*
@@ -390,9 +390,9 @@ static void __init cpld_init(void)
{
unsigned long flags;
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_cpld_modify(-1, CPLD_UNMUTE | CPLD_7111_DISABLE);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
}
static unsigned char rwa_unlock[] __initdata =
@@ -616,9 +616,9 @@ static int __init nw_hw_init(void)
cpld_init();
rwa010_init();
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_gpio_modify_op(GPIO_RED_LED|GPIO_GREEN_LED, DEFAULT_LEDS);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
}
return 0;
}
--git a/arch/arm/mach-footbridge/netwinder-leds.c b/arch/arm/mach-footbridge/netwinder-leds.c
index 00269fe..e57102e 100644
--- a/arch/arm/mach-footbridge/netwinder-leds.c
+++ b/arch/arm/mach-footbridge/netwinder-leds.c
@@ -31,13 +31,13 @@
static char led_state;
static char hw_led_state;
-static DEFINE_SPINLOCK(leds_lock);
+static DEFINE_RAW_SPINLOCK(leds_lock);
static void netwinder_leds_event(led_event_t evt)
{
unsigned long flags;
- spin_lock_irqsave(&leds_lock, flags);
+ raw_spin_lock_irqsave(&leds_lock, flags);
switch (evt) {
case led_start:
@@ -117,12 +117,12 @@ static void netwinder_leds_event(led_event_t evt)
break;
}
- spin_unlock_irqrestore(&leds_lock, flags);
+ raw_spin_unlock_irqrestore(&leds_lock, flags);
if (led_state & LED_STATE_ENABLED) {
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_gpio_modify_op(GPIO_RED_LED | GPIO_GREEN_LED, hw_led_state);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
}
}
diff --git a/drivers/char/ds1620.c b/drivers/char/ds1620.c
index dbee868..0ad33dc 100644
--- a/drivers/char/ds1620.c
+++ b/drivers/char/ds1620.c
@@ -73,21 +73,21 @@ static inline void netwinder_ds1620_reset(void)
static inline void netwinder_lock(unsigned long *flags)
{
- spin_lock_irqsave(&nw_gpio_lock, *flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, *flags);
}
static inline void netwinder_unlock(unsigned long *flags)
{
- spin_unlock_irqrestore(&nw_gpio_lock, *flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, *flags);
}
static inline void netwinder_set_fan(int i)
{
unsigned long flags;
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_gpio_modify_op(GPIO_FAN, i ? GPIO_FAN : 0);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
}
static inline int netwinder_get_fan(void)
diff --git a/drivers/char/nwflash.c b/drivers/char/nwflash.c
index 043a1c7..0392150 100644
--- a/drivers/char/nwflash.c
+++ b/drivers/char/nwflash.c
@@ -618,9 +618,9 @@ static void kick_open(void)
* we want to write a bit pattern XXX1 to Xilinx to enable
* the write gate, which will be open for about the next 2ms.
*/
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_cpld_modify(CPLD_FLASH_WR_ENABLE, CPLD_FLASH_WR_ENABLE);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
/*
* let the ISA bus to catch on...
diff --git a/drivers/mtd/maps/dc21285.c b/drivers/mtd/maps/dc21285.c
index b3cb3a1..d1703e8 100644
--- a/drivers/mtd/maps/dc21285.c
+++ b/drivers/mtd/maps/dc21285.c
@@ -38,9 +38,9 @@ static void nw_en_write(void)
* we want to write a bit pattern XXX1 to Xilinx to enable
* the write gate, which will be open for about the next 2ms.
*/
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_cpld_modify(CPLD_FLASH_WR_ENABLE, CPLD_FLASH_WR_ENABLE);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
/*
* let the ISA bus to catch on...
diff --git a/sound/oss/waveartist.c b/sound/oss/waveartist.c
index 5246874..c524795 100644
--- a/sound/oss/waveartist.c
+++ b/sound/oss/waveartist.c
@@ -1483,9 +1483,9 @@ vnc_mute_spkr(wavnc_info *devc)
{
unsigned long flags;
- spin_lock_irqsave(&nw_gpio_lock, flags);
+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
nw_cpld_modify(CPLD_UNMUTE, devc->spkr_mute_state ? 0 : CPLD_UNMUTE);
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
}
static void
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 10/12] ARM: integrator: Convert cm_lock and v3_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (8 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 09/12] ARM: footbridge: Convert gpio and led locks " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 11/12] ARM: ixp4xx: Convert pci_lock " Uwe Kleine-König
` (2 subsequent siblings)
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
cm_lock and v3_lock need to be real spinlocks on preempt-rt. Convert
them to raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mach-integrator/core.c | 6 +++---
arch/arm/mach-integrator/pci_v3.c | 14 +++++++-------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 8f4fb6d..e5f1d66 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -203,7 +203,7 @@ static struct amba_pl010_data integrator_uart_data = {
#define CM_CTRL IO_ADDRESS(INTEGRATOR_HDR_CTRL)
-static DEFINE_SPINLOCK(cm_lock);
+static DEFINE_RAW_SPINLOCK(cm_lock);
/**
* cm_control - update the CM_CTRL register.
@@ -215,10 +215,10 @@ void cm_control(u32 mask, u32 set)
unsigned long flags;
u32 val;
- spin_lock_irqsave(&cm_lock, flags);
+ raw_spin_lock_irqsave(&cm_lock, flags);
val = readl(CM_CTRL) & ~mask;
writel(val | set, CM_CTRL);
- spin_unlock_irqrestore(&cm_lock, flags);
+ raw_spin_unlock_irqrestore(&cm_lock, flags);
}
EXPORT_SYMBOL(cm_control);
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
index 6467d99..a9b90a0 100644
--- a/arch/arm/mach-integrator/pci_v3.c
+++ b/arch/arm/mach-integrator/pci_v3.c
@@ -163,7 +163,7 @@
* 7:2 register number
*
*/
-static DEFINE_SPINLOCK(v3_lock);
+static DEFINE_RAW_SPINLOCK(v3_lock);
#define PCI_BUS_NONMEM_START 0x00000000
#define PCI_BUS_NONMEM_SIZE SZ_256M
@@ -284,7 +284,7 @@ static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where,
unsigned long flags;
u32 v;
- spin_lock_irqsave(&v3_lock, flags);
+ raw_spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(bus, devfn, where);
switch (size) {
@@ -302,7 +302,7 @@ static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where,
}
v3_close_config_window();
- spin_unlock_irqrestore(&v3_lock, flags);
+ raw_spin_unlock_irqrestore(&v3_lock, flags);
*val = v;
return PCIBIOS_SUCCESSFUL;
@@ -314,7 +314,7 @@ static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where,
unsigned long addr;
unsigned long flags;
- spin_lock_irqsave(&v3_lock, flags);
+ raw_spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(bus, devfn, where);
switch (size) {
@@ -335,7 +335,7 @@ static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where,
}
v3_close_config_window();
- spin_unlock_irqrestore(&v3_lock, flags);
+ raw_spin_unlock_irqrestore(&v3_lock, flags);
return PCIBIOS_SUCCESSFUL;
}
@@ -510,7 +510,7 @@ void __init pci_v3_preinit(void)
hook_fault_code(8, v3_pci_fault, SIGBUS, 0, "external abort on non-linefetch");
hook_fault_code(10, v3_pci_fault, SIGBUS, 0, "external abort on non-linefetch");
- spin_lock_irqsave(&v3_lock, flags);
+ raw_spin_lock_irqsave(&v3_lock, flags);
/*
* Unlock V3 registers, but only if they were previously locked.
@@ -583,7 +583,7 @@ void __init pci_v3_preinit(void)
printk(KERN_ERR "PCI: unable to grab PCI error "
"interrupt: %d\n", ret);
- spin_unlock_irqrestore(&v3_lock, flags);
+ raw_spin_unlock_irqrestore(&v3_lock, flags);
}
void __init pci_v3_postinit(void)
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 11/12] ARM: ixp4xx: Convert pci_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (9 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 10/12] ARM: integrator: Convert cm_lock and v3_lock " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 12/12] ARM: shark: Convert leds_lock " Uwe Kleine-König
2010-10-19 15:26 ` [patch 00/12] arm: raw_spinlock annotations Arnd Bergmann
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
ixp4xx_pci_lock needs to be a real spinlock on preempt-rt. Convert it
to a raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mach-ixp4xx/common-pci.c | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c
index 24498a9..90a7d68 100644
--- a/arch/arm/mach-ixp4xx/common-pci.c
+++ b/arch/arm/mach-ixp4xx/common-pci.c
@@ -54,7 +54,7 @@ unsigned long ixp4xx_pci_reg_base = 0;
* these transactions are atomic or we will end up
* with corrupt data on the bus or in a driver.
*/
-static DEFINE_SPINLOCK(ixp4xx_pci_lock);
+static DEFINE_RAW_SPINLOCK(ixp4xx_pci_lock);
/*
* Read from PCI config space
@@ -62,10 +62,10 @@ static DEFINE_SPINLOCK(ixp4xx_pci_lock);
static void crp_read(u32 ad_cbe, u32 *data)
{
unsigned long flags;
- spin_lock_irqsave(&ixp4xx_pci_lock, flags);
+ raw_spin_lock_irqsave(&ixp4xx_pci_lock, flags);
*PCI_CRP_AD_CBE = ad_cbe;
*data = *PCI_CRP_RDATA;
- spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
+ raw_spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
}
/*
@@ -74,10 +74,10 @@ static void crp_read(u32 ad_cbe, u32 *data)
static void crp_write(u32 ad_cbe, u32 data)
{
unsigned long flags;
- spin_lock_irqsave(&ixp4xx_pci_lock, flags);
+ raw_spin_lock_irqsave(&ixp4xx_pci_lock, flags);
*PCI_CRP_AD_CBE = CRP_AD_CBE_WRITE | ad_cbe;
*PCI_CRP_WDATA = data;
- spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
+ raw_spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
}
static inline int check_master_abort(void)
@@ -101,7 +101,7 @@ int ixp4xx_pci_read_errata(u32 addr, u32 cmd, u32* data)
int retval = 0;
int i;
- spin_lock_irqsave(&ixp4xx_pci_lock, flags);
+ raw_spin_lock_irqsave(&ixp4xx_pci_lock, flags);
*PCI_NP_AD = addr;
@@ -118,7 +118,7 @@ int ixp4xx_pci_read_errata(u32 addr, u32 cmd, u32* data)
if(check_master_abort())
retval = 1;
- spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
+ raw_spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
return retval;
}
@@ -127,7 +127,7 @@ int ixp4xx_pci_read_no_errata(u32 addr, u32 cmd, u32* data)
unsigned long flags;
int retval = 0;
- spin_lock_irqsave(&ixp4xx_pci_lock, flags);
+ raw_spin_lock_irqsave(&ixp4xx_pci_lock, flags);
*PCI_NP_AD = addr;
@@ -140,7 +140,7 @@ int ixp4xx_pci_read_no_errata(u32 addr, u32 cmd, u32* data)
if(check_master_abort())
retval = 1;
- spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
+ raw_spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
return retval;
}
@@ -149,7 +149,7 @@ int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data)
unsigned long flags;
int retval = 0;
- spin_lock_irqsave(&ixp4xx_pci_lock, flags);
+ raw_spin_lock_irqsave(&ixp4xx_pci_lock, flags);
*PCI_NP_AD = addr;
@@ -162,7 +162,7 @@ int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data)
if(check_master_abort())
retval = 1;
- spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
+ raw_spin_unlock_irqrestore(&ixp4xx_pci_lock, flags);
return retval;
}
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 12/12] ARM: shark: Convert leds_lock to raw_spinlock
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (10 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 11/12] ARM: ixp4xx: Convert pci_lock " Uwe Kleine-König
@ 2010-10-19 14:39 ` Uwe Kleine-König
2010-10-19 15:26 ` [patch 00/12] arm: raw_spinlock annotations Arnd Bergmann
12 siblings, 0 replies; 31+ messages in thread
From: Uwe Kleine-König @ 2010-10-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
From: Thomas Gleixner <tglx@linutronix.de>
leds_lock needs to be a real spinlock on preempt-rt. Convert it to a
raw_spinlock. No change for !RT kernels.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
arch/arm/mach-shark/leds.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-shark/leds.c b/arch/arm/mach-shark/leds.c
index c9e32de..ccd4918 100644
--- a/arch/arm/mach-shark/leds.c
+++ b/arch/arm/mach-shark/leds.c
@@ -36,7 +36,7 @@ static char led_state;
static short hw_led_state;
static short saved_state;
-static DEFINE_SPINLOCK(leds_lock);
+static DEFINE_RAW_SPINLOCK(leds_lock);
short sequoia_read(int addr) {
outw(addr,0x24);
@@ -52,7 +52,7 @@ static void sequoia_leds_event(led_event_t evt)
{
unsigned long flags;
- spin_lock_irqsave(&leds_lock, flags);
+ raw_spin_lock_irqsave(&leds_lock, flags);
hw_led_state = sequoia_read(0x09);
@@ -144,7 +144,7 @@ static void sequoia_leds_event(led_event_t evt)
if (led_state & LED_STATE_ENABLED)
sequoia_write(hw_led_state,0x09);
- spin_unlock_irqrestore(&leds_lock, flags);
+ raw_spin_unlock_irqrestore(&leds_lock, flags);
}
static int __init leds_init(void)
--
1.7.2.3
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [patch 00/12] arm: raw_spinlock annotations
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
` (11 preceding siblings ...)
2010-10-19 14:39 ` [PATCH 12/12] ARM: shark: Convert leds_lock " Uwe Kleine-König
@ 2010-10-19 15:26 ` Arnd Bergmann
2010-10-19 18:44 ` Russell King - ARM Linux
12 siblings, 1 reply; 31+ messages in thread
From: Arnd Bergmann @ 2010-10-19 15:26 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 19 October 2010, Uwe Kleine-K?nig wrote:
> While cleaning up my repo I refound the patches and rebased them on top
> of today's Linus' tree and only needed to fix up the l2x0_lock patch as
> in the meantime a new usage hit mainline.
The patches all look harmless, but none of them has any information on
why the particular locks need to be raw_spin_lock. Ideally a raw spinlock
should be the absolute exception, and IMHO should have a comment in front
of it why it is special.
Arnd
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 00/12] arm: raw_spinlock annotations
2010-10-19 15:26 ` [patch 00/12] arm: raw_spinlock annotations Arnd Bergmann
@ 2010-10-19 18:44 ` Russell King - ARM Linux
2010-10-19 20:03 ` Thomas Gleixner
0 siblings, 1 reply; 31+ messages in thread
From: Russell King - ARM Linux @ 2010-10-19 18:44 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 19, 2010 at 05:26:45PM +0200, Arnd Bergmann wrote:
> On Tuesday 19 October 2010, Uwe Kleine-K?nig wrote:
> > While cleaning up my repo I refound the patches and rebased them on top
> > of today's Linus' tree and only needed to fix up the l2x0_lock patch as
> > in the meantime a new usage hit mainline.
>
> The patches all look harmless, but none of them has any information on
> why the particular locks need to be raw_spin_lock. Ideally a raw spinlock
> should be the absolute exception, and IMHO should have a comment in front
> of it why it is special.
Or at least explained in the patch description.
For instance, can someone explain why the lock for leds and gpio stuff
on Footbridge needs to be converted? What is the original problem?
More importantly, what is the criteria for using a raw spinlock instead
of a normal spinlock?
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 00/12] arm: raw_spinlock annotations
2010-10-19 18:44 ` Russell King - ARM Linux
@ 2010-10-19 20:03 ` Thomas Gleixner
2010-10-19 20:20 ` Arnd Bergmann
0 siblings, 1 reply; 31+ messages in thread
From: Thomas Gleixner @ 2010-10-19 20:03 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, 19 Oct 2010, Russell King - ARM Linux wrote:
> On Tue, Oct 19, 2010 at 05:26:45PM +0200, Arnd Bergmann wrote:
> > On Tuesday 19 October 2010, Uwe Kleine-K?nig wrote:
> > > While cleaning up my repo I refound the patches and rebased them on top
> > > of today's Linus' tree and only needed to fix up the l2x0_lock patch as
> > > in the meantime a new usage hit mainline.
> >
> > The patches all look harmless, but none of them has any information on
> > why the particular locks need to be raw_spin_lock. Ideally a raw spinlock
> > should be the absolute exception, and IMHO should have a comment in front
> > of it why it is special.
>
> Or at least explained in the patch description.
>
> For instance, can someone explain why the lock for leds and gpio stuff
> on Footbridge needs to be converted? What is the original problem?
> More importantly, what is the criteria for using a raw spinlock instead
> of a normal spinlock?
raw_spinlock is still a spinlock when PREEMPT_RT is enabled, mere
spinlocks become magically "sleeping" spinlocks (aka. PI aware
rtmutexes)
Vs. the patches: IIRC, it was all fallout from running -rt, but that
needs to be looked at case by case. Some of those are obvious as they
are called deep down in atomic irq disabled code, but others might be
just due to laziness reasons.
There is no urgency to get them merged right now.
Thanks,
tglx
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 00/12] arm: raw_spinlock annotations
2010-10-19 20:03 ` Thomas Gleixner
@ 2010-10-19 20:20 ` Arnd Bergmann
2010-10-19 22:07 ` Thomas Gleixner
0 siblings, 1 reply; 31+ messages in thread
From: Arnd Bergmann @ 2010-10-19 20:20 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 19 October 2010 22:03:32 Thomas Gleixner wrote:
> On Tue, 19 Oct 2010, Russell King - ARM Linux wrote:
>
> > On Tue, Oct 19, 2010 at 05:26:45PM +0200, Arnd Bergmann wrote:
> > > On Tuesday 19 October 2010, Uwe Kleine-K?nig wrote:
> > > > While cleaning up my repo I refound the patches and rebased them on top
> > > > of today's Linus' tree and only needed to fix up the l2x0_lock patch as
> > > > in the meantime a new usage hit mainline.
> > >
> > > The patches all look harmless, but none of them has any information on
> > > why the particular locks need to be raw_spin_lock. Ideally a raw spinlock
> > > should be the absolute exception, and IMHO should have a comment in front
> > > of it why it is special.
> >
> > Or at least explained in the patch description.
> >
> > For instance, can someone explain why the lock for leds and gpio stuff
> > on Footbridge needs to be converted? What is the original problem?
> > More importantly, what is the criteria for using a raw spinlock instead
> > of a normal spinlock?
>
> raw_spinlock is still a spinlock when PREEMPT_RT is enabled, mere
> spinlocks become magically "sleeping" spinlocks (aka. PI aware
> rtmutexes)
I think we all understood that part of the series description.
> Vs. the patches: IIRC, it was all fallout from running -rt, but that
> needs to be looked at case by case. Some of those are obvious as they
> are called deep down in atomic irq disabled code, but others might be
> just due to laziness reasons.
Not as obvious as you'd think. The explanation "called in atomic irq
disabled code" makes sense, but I hadn't thought of that before -- I had
expected all that code to use IRQ threads in case of PREEMPT_RT.
Requiring a comment there would probably eliminate the laziness issues,
adding a comment that you can't be bothered to do the right fix won't
help getting a patch merged, so ideally you'd end up with a better
solution getting merged.
Arnd
^ permalink raw reply [flat|nested] 31+ messages in thread
* [patch 00/12] arm: raw_spinlock annotations
2010-10-19 20:20 ` Arnd Bergmann
@ 2010-10-19 22:07 ` Thomas Gleixner
0 siblings, 0 replies; 31+ messages in thread
From: Thomas Gleixner @ 2010-10-19 22:07 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, 19 Oct 2010, Arnd Bergmann wrote:
> On Tuesday 19 October 2010 22:03:32 Thomas Gleixner wrote:
> > On Tue, 19 Oct 2010, Russell King - ARM Linux wrote:
> >
> > > On Tue, Oct 19, 2010 at 05:26:45PM +0200, Arnd Bergmann wrote:
> > > > On Tuesday 19 October 2010, Uwe Kleine-K?nig wrote:
> > > > > While cleaning up my repo I refound the patches and rebased them on top
> > > > > of today's Linus' tree and only needed to fix up the l2x0_lock patch as
> > > > > in the meantime a new usage hit mainline.
> > > >
> > > > The patches all look harmless, but none of them has any information on
> > > > why the particular locks need to be raw_spin_lock. Ideally a raw spinlock
> > > > should be the absolute exception, and IMHO should have a comment in front
> > > > of it why it is special.
> > >
> > > Or at least explained in the patch description.
> > >
> > > For instance, can someone explain why the lock for leds and gpio stuff
> > > on Footbridge needs to be converted? What is the original problem?
> > > More importantly, what is the criteria for using a raw spinlock instead
> > > of a normal spinlock?
> >
> > raw_spinlock is still a spinlock when PREEMPT_RT is enabled, mere
> > spinlocks become magically "sleeping" spinlocks (aka. PI aware
> > rtmutexes)
>
> I think we all understood that part of the series description.
>
> > Vs. the patches: IIRC, it was all fallout from running -rt, but that
> > needs to be looked at case by case. Some of those are obvious as they
> > are called deep down in atomic irq disabled code, but others might be
> > just due to laziness reasons.
>
> Not as obvious as you'd think. The explanation "called in atomic irq
> disabled code" makes sense, but I hadn't thought of that before -- I had
> expected all that code to use IRQ threads in case of PREEMPT_RT.
>
> Requiring a comment there would probably eliminate the laziness issues,
> adding a comment that you can't be bothered to do the right fix won't
> help getting a patch merged, so ideally you'd end up with a better
> solution getting merged.
I know, that's why I'm not pressuring that issue. It needs work and
looking at the code and context. That few lines can happily live in
-rt for now. We have bigger fish to fry there.
Thanks,
tglx
^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2010-10-19 22:07 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-17 13:19 [patch 00/12] arm: raw_spinlock annotations Thomas Gleixner
2010-02-17 13:21 ` [patch 01/12] arm: Convert dma_spin_lock to raw_spinlock Thomas Gleixner
2010-02-17 13:21 ` [patch 02/12] arm: Convert stop_lock " Thomas Gleixner
2010-02-17 13:21 ` [patch 03/12] arm-convert-die_lock-undef_lock-to-raw-spinlocks.patch Thomas Gleixner
2010-02-17 13:21 ` [patch 04/12] arm: Convert l2x0_lock to raw_spinlock Thomas Gleixner
2010-02-17 13:22 ` [patch 05/12] arm: Convert cpu_asid_lock " Thomas Gleixner
2010-02-17 13:22 ` [patch 06/12] arm: Convert xscale minicache_lock " Thomas Gleixner
2010-02-17 13:22 ` [patch 07/12] arm: Convert v4 " Thomas Gleixner
2010-02-17 13:23 ` [patch 08/12] arm: Convert v6_lock " Thomas Gleixner
2010-02-17 13:23 ` [patch 09/12] arm: Convert footbridge gpio and led locks " Thomas Gleixner
2010-02-17 13:23 ` [patch 10/12] arm: Convert integrator cm_lock and v3_lock " Thomas Gleixner
2010-02-17 13:23 ` [patch 11/12] arm: Convert ixp4xx pci_lock " Thomas Gleixner
2010-02-17 13:23 ` [patch 12/12] arm: Convert shark leds_lock " Thomas Gleixner
2010-10-19 14:37 ` [patch 00/12] arm: raw_spinlock annotations Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 01/12] ARM: Convert dma_spin_lock to raw_spinlock Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 02/12] ARM: smp: Convert stop_lock " Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 03/12] ARM: Convert die_lock and undef_lock to raw_spinlocks Uwe Kleine-König
2010-10-19 14:38 ` [PATCH 04/12] ARM: Convert l2x0_lock to raw_spinlock Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 05/12] ARM: Convert cpu_asid_lock " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 06/12] ARM: Convert xscale minicache_lock " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 07/12] ARM: Convert v4 " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 08/12] ARM: Convert v6_lock " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 09/12] ARM: footbridge: Convert gpio and led locks " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 10/12] ARM: integrator: Convert cm_lock and v3_lock " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 11/12] ARM: ixp4xx: Convert pci_lock " Uwe Kleine-König
2010-10-19 14:39 ` [PATCH 12/12] ARM: shark: Convert leds_lock " Uwe Kleine-König
2010-10-19 15:26 ` [patch 00/12] arm: raw_spinlock annotations Arnd Bergmann
2010-10-19 18:44 ` Russell King - ARM Linux
2010-10-19 20:03 ` Thomas Gleixner
2010-10-19 20:20 ` Arnd Bergmann
2010-10-19 22:07 ` Thomas Gleixner
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).