Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 255d1f86 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

[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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 994adcc3
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -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;
+8 −25
Original line number Diff line number Diff line
@@ -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()