Loading arch/arm/mm/mmu.c +20 −0 Original line number Diff line number Diff line Loading @@ -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; Loading include/asm-arm/system.h +8 −25 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ #ifndef __ASSEMBLY__ #include <linux/linkage.h> #include <linux/irqflags.h> struct thread_info; struct task_struct; Loading Loading @@ -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; Loading @@ -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)) Loading @@ -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) Loading Loading @@ -248,8 +233,6 @@ static inline void sched_cacheflush(void) { } #include <linux/irqflags.h> #ifdef CONFIG_SMP #define smp_mb() mb() Loading Loading
arch/arm/mm/mmu.c +20 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
include/asm-arm/system.h +8 −25 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ #ifndef __ASSEMBLY__ #include <linux/linkage.h> #include <linux/irqflags.h> struct thread_info; struct task_struct; Loading Loading @@ -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; Loading @@ -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)) Loading @@ -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) Loading Loading @@ -248,8 +233,6 @@ static inline void sched_cacheflush(void) { } #include <linux/irqflags.h> #ifdef CONFIG_SMP #define smp_mb() mb() Loading