diff options
Diffstat (limited to 'arch/arm/kernel/traps.c')
-rw-r--r-- | arch/arm/kernel/traps.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index df2cb06ce424..d571c37ac30c 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -248,16 +248,20 @@ static DEFINE_SPINLOCK(undef_lock); | |||
248 | 248 | ||
249 | void register_undef_hook(struct undef_hook *hook) | 249 | void register_undef_hook(struct undef_hook *hook) |
250 | { | 250 | { |
251 | spin_lock_irq(&undef_lock); | 251 | unsigned long flags; |
252 | |||
253 | spin_lock_irqsave(&undef_lock, flags); | ||
252 | list_add(&hook->node, &undef_hook); | 254 | list_add(&hook->node, &undef_hook); |
253 | spin_unlock_irq(&undef_lock); | 255 | spin_unlock_irqrestore(&undef_lock, flags); |
254 | } | 256 | } |
255 | 257 | ||
256 | void unregister_undef_hook(struct undef_hook *hook) | 258 | void unregister_undef_hook(struct undef_hook *hook) |
257 | { | 259 | { |
258 | spin_lock_irq(&undef_lock); | 260 | unsigned long flags; |
261 | |||
262 | spin_lock_irqsave(&undef_lock, flags); | ||
259 | list_del(&hook->node); | 263 | list_del(&hook->node); |
260 | spin_unlock_irq(&undef_lock); | 264 | spin_unlock_irqrestore(&undef_lock, flags); |
261 | } | 265 | } |
262 | 266 | ||
263 | asmlinkage void do_undefinstr(struct pt_regs *regs) | 267 | asmlinkage void do_undefinstr(struct pt_regs *regs) |