[ARM] Fix warnings from asm/system.h
Move adjust_cr() into arch/arm/mm/mmu.c, and move irqflags.h to a more appropriate place in the header file. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Родитель
994adcc36d
Коммит
255d1f8639
|
@ -154,6 +154,26 @@ static int __init noalign_setup(char *__unused)
|
|||
}
|
||||
__setup("noalign", noalign_setup);
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
void adjust_cr(unsigned long mask, unsigned long set)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
mask &= ~CR_A;
|
||||
|
||||
set &= mask;
|
||||
|
||||
local_irq_save(flags);
|
||||
|
||||
cr_no_alignment = (cr_no_alignment & ~mask) | set;
|
||||
cr_alignment = (cr_alignment & ~mask) | set;
|
||||
|
||||
set_cr((get_cr() & ~mask) | set);
|
||||
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
#endif
|
||||
|
||||
struct mem_types {
|
||||
unsigned int prot_pte;
|
||||
unsigned int prot_l1;
|
||||
|
|
|
@ -73,6 +73,7 @@
|
|||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/irqflags.h>
|
||||
|
||||
struct thread_info;
|
||||
struct task_struct;
|
||||
|
@ -139,6 +140,9 @@ static inline int cpu_is_xsc3(void)
|
|||
#define cpu_is_xscale() 1
|
||||
#endif
|
||||
|
||||
extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
|
||||
extern unsigned long cr_alignment; /* defined in entry-armv.S */
|
||||
|
||||
static inline unsigned int get_cr(void)
|
||||
{
|
||||
unsigned int val;
|
||||
|
@ -152,6 +156,10 @@ static inline void set_cr(unsigned int val)
|
|||
: : "r" (val) : "cc");
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
extern void adjust_cr(unsigned long mask, unsigned long set);
|
||||
#endif
|
||||
|
||||
#define CPACC_FULL(n) (3 << (n * 2))
|
||||
#define CPACC_SVC(n) (1 << (n * 2))
|
||||
#define CPACC_DISABLE(n) (0 << (n * 2))
|
||||
|
@ -170,29 +178,6 @@ static inline void set_copro_access(unsigned int val)
|
|||
: : "r" (val) : "cc");
|
||||
}
|
||||
|
||||
extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
|
||||
extern unsigned long cr_alignment; /* defined in entry-armv.S */
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
static inline void adjust_cr(unsigned long mask, unsigned long set)
|
||||
{
|
||||
unsigned long flags, cr;
|
||||
|
||||
mask &= ~CR_A;
|
||||
|
||||
set &= mask;
|
||||
|
||||
local_irq_save(flags);
|
||||
|
||||
cr_no_alignment = (cr_no_alignment & ~mask) | set;
|
||||
cr_alignment = (cr_alignment & ~mask) | set;
|
||||
|
||||
set_cr((get_cr() & ~mask) | set);
|
||||
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define UDBG_UNDEFINED (1 << 0)
|
||||
#define UDBG_SYSCALL (1 << 1)
|
||||
#define UDBG_BADABORT (1 << 2)
|
||||
|
@ -248,8 +233,6 @@ static inline void sched_cacheflush(void)
|
|||
{
|
||||
}
|
||||
|
||||
#include <linux/irqflags.h>
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
#define smp_mb() mb()
|
||||
|
|
Загрузка…
Ссылка в новой задаче