Commit 17b77695 authored by Russell King's avatar Russell King

[ARM] Other updates for changes in 2.5.42

This adds ARM support for in_atomic() and asm/numnodes.h
parent 69bc3279
...@@ -69,10 +69,18 @@ typedef struct { ...@@ -69,10 +69,18 @@ typedef struct {
#define irq_enter() (preempt_count() += HARDIRQ_OFFSET) #define irq_enter() (preempt_count() += HARDIRQ_OFFSET)
#ifdef CONFIG_PREEMPT
# define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != kernel_locked())
# define IRQ_EXIT_OFFSET (HARDIRQ_OFFSET-1)
#else
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
#ifndef CONFIG_SMP #ifndef CONFIG_SMP
#define irq_exit() \ #define irq_exit() \
do { \ do { \
preempt_count() -= HARDIRQ_OFFSET; \ preempt_count() -= IRQ_EXIT_OFFSET; \
if (!in_interrupt() && softirq_pending(smp_processor_id())) \ if (!in_interrupt() && softirq_pending(smp_processor_id())) \
__asm__("bl%? __do_softirq": : : "lr");/* out of line */\ __asm__("bl%? __do_softirq": : : "lr");/* out of line */\
preempt_enable_no_resched(); \ preempt_enable_no_resched(); \
...@@ -80,7 +88,7 @@ typedef struct { ...@@ -80,7 +88,7 @@ typedef struct {
#define synchronize_irq(irq) barrier() #define synchronize_irq(irq) barrier()
#else #else
#error SMP not supported extern void synchronize_irq(unsigned int irq);
#endif #endif
#endif /* __ASM_HARDIRQ_H */ #endif /* __ASM_HARDIRQ_H */
/*
* linux/include/asm-arm/numnodes.h
*
* Copyright (C) 2002 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARM_NUMNODES_H
#define __ASM_ARM_NUMNODES_H
#include <asm/memory.h>
#define MAX_NUMNODES NR_NODES
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment