[PATCH 2/3] up.c: Use local_irq_{save,restore}() in smp_call_function_single.

From: David Daney
Date: Fri Aug 02 2013 - 17:09:48 EST


From: David Daney <david.daney@xxxxxxxxxx>

The SMP version of this function doesn't unconditionally enable irqs,
so neither should this !SMP version. There are no know problems
caused by this, but we make the change for consistency's sake.

Signed-off-by: David Daney <david.daney@xxxxxxxxxx>
---
kernel/up.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/kernel/up.c b/kernel/up.c
index 144e572..b1cf036 100644
--- a/kernel/up.c
+++ b/kernel/up.c
@@ -10,11 +10,13 @@
int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
int wait)
{
+ unsigned long flags;
+
WARN_ON(cpu != 0);

- local_irq_disable();
- (func)(info);
- local_irq_enable();
+ local_irq_save(flags);
+ func(info);
+ local_irq_restore(flags);

return 0;
}
--
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/