Add irqsave to spinlocks in call function single interrupt
PATCH 1/2 Add irqsave to spinlocks in call function single interrupt
Signed-off-by Alan D. Brunelle <[email protected]>
--- kernel/smp.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
kernel/smp.c +3 -2
@@ -24,12 +24,13 @@ void __cpuinit generic_init_call_single_data(void)void generic_smp_call_function_single_interrupt (void ) {struct call_single_queue *q; +unsigned long flags;LIST_HEAD (list); q = &__get_cpu_var (call_single_queue); -spin_lock (&q->lock); +spin_lock_irqsave (&q->lock, flags);list_replace_init (&q->list, &list); -spin_unlock (&q->lock); +spin_unlock_irqrestore (&q->lock, flags);while (!list_empty (&list)) {struct call_single_data *data;
Signature · 1 line
1.5.2.5
Quoted 16 lines · Alan D. Brunelle
Signed-off-by Alan D. Brunelle <[email protected]>--- kernel/smp.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)kernel/smp.c +1
-0@@ -24,12 +24,13 @@ void __cpuinit generic_init_call_single_data(void)void generic_smp_call_function_single_interrupt (void ) {struct call_single_queue *q; +unsigned long flags;LIST_HEAD (list);
kernel/smp.c void __cpuinit generic_init_call_single_data(void) · line 36
Quoted 10 lines
kernel/smp.c +2
-2q = &__get_cpu_var (call_single_queue); -spin_lock (&q->lock); +spin_lock_irqsave (&q->lock, flags);list_replace_init (&q->list, &list); -spin_unlock (&q->lock); +spin_unlock_irqrestore (&q->lock, flags);while (!list_empty (&list)) {struct call_single_data *data;
This is included in the later series.
Signature · 1 line
Jens Axboe