Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm
Pull ARM fixes from Russell King: "A number of smallish fixes scattered around the ARM code. Probably the most serious one is the one from Al addressing the missing locking in the swap emulation code." * 'fixes' of git://git.linaro.org/people/rmk/linux-arm: ARM: 7607/1: realview: fix private peripheral memory base for EB rev. B boards ARM: 7606/1: cache: flush to LoUU instead of LoUIS on uniprocessor CPUs ARM: missing ->mmap_sem around find_vma() in swp_emulate.c ARM: 7605/1: vmlinux.lds: Move .notes section next to the rodata ARM: 7602/1: Pass real "__machine_arch_type" variable to setup_machine_tags() procedure ARM: 7600/1: include CONFIG_DEBUG_LL_INCLUDE rather than mach/debug-macro.S
This commit is contained in:
commit
f59dc2bb5a
6 changed files with 11 additions and 7 deletions
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#include <mach/debug-macro.S>
|
#include CONFIG_DEBUG_LL_INCLUDE
|
||||||
|
|
||||||
.macro writeb, ch, rb
|
.macro writeb, ch, rb
|
||||||
senduart \ch, \rb
|
senduart \ch, \rb
|
||||||
|
|
|
@ -733,7 +733,7 @@ void __init setup_arch(char **cmdline_p)
|
||||||
setup_processor();
|
setup_processor();
|
||||||
mdesc = setup_machine_fdt(__atags_pointer);
|
mdesc = setup_machine_fdt(__atags_pointer);
|
||||||
if (!mdesc)
|
if (!mdesc)
|
||||||
mdesc = setup_machine_tags(__atags_pointer, machine_arch_type);
|
mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
|
||||||
machine_desc = mdesc;
|
machine_desc = mdesc;
|
||||||
machine_name = mdesc->name;
|
machine_name = mdesc->name;
|
||||||
|
|
||||||
|
|
|
@ -109,10 +109,12 @@ static void set_segfault(struct pt_regs *regs, unsigned long addr)
|
||||||
{
|
{
|
||||||
siginfo_t info;
|
siginfo_t info;
|
||||||
|
|
||||||
|
down_read(¤t->mm->mmap_sem);
|
||||||
if (find_vma(current->mm, addr) == NULL)
|
if (find_vma(current->mm, addr) == NULL)
|
||||||
info.si_code = SEGV_MAPERR;
|
info.si_code = SEGV_MAPERR;
|
||||||
else
|
else
|
||||||
info.si_code = SEGV_ACCERR;
|
info.si_code = SEGV_ACCERR;
|
||||||
|
up_read(¤t->mm->mmap_sem);
|
||||||
|
|
||||||
info.si_signo = SIGSEGV;
|
info.si_signo = SIGSEGV;
|
||||||
info.si_errno = 0;
|
info.si_errno = 0;
|
||||||
|
|
|
@ -140,6 +140,8 @@ SECTIONS
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NOTES
|
||||||
|
|
||||||
_etext = .; /* End of text and rodata section */
|
_etext = .; /* End of text and rodata section */
|
||||||
|
|
||||||
#ifndef CONFIG_XIP_KERNEL
|
#ifndef CONFIG_XIP_KERNEL
|
||||||
|
@ -295,8 +297,6 @@ SECTIONS
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NOTES
|
|
||||||
|
|
||||||
BSS_SECTION(0, 0, 0)
|
BSS_SECTION(0, 0, 0)
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
#define REALVIEW_EB_USB_BASE 0x4F000000 /* USB */
|
#define REALVIEW_EB_USB_BASE 0x4F000000 /* USB */
|
||||||
|
|
||||||
#ifdef CONFIG_REALVIEW_EB_ARM11MP_REVB
|
#ifdef CONFIG_REALVIEW_EB_ARM11MP_REVB
|
||||||
#define REALVIEW_EB11MP_PRIV_MEM_BASE 0x1F000000
|
#define REALVIEW_EB11MP_PRIV_MEM_BASE 0x10100000
|
||||||
#define REALVIEW_EB11MP_L220_BASE 0x10102000 /* L220 registers */
|
#define REALVIEW_EB11MP_L220_BASE 0x10102000 /* L220 registers */
|
||||||
#define REALVIEW_EB11MP_SYS_PLD_CTRL1 0xD8 /* Register offset for MPCore sysctl */
|
#define REALVIEW_EB11MP_SYS_PLD_CTRL1 0xD8 /* Register offset for MPCore sysctl */
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -44,8 +44,10 @@ ENDPROC(v7_flush_icache_all)
|
||||||
ENTRY(v7_flush_dcache_louis)
|
ENTRY(v7_flush_dcache_louis)
|
||||||
dmb @ ensure ordering with previous memory accesses
|
dmb @ ensure ordering with previous memory accesses
|
||||||
mrc p15, 1, r0, c0, c0, 1 @ read clidr, r0 = clidr
|
mrc p15, 1, r0, c0, c0, 1 @ read clidr, r0 = clidr
|
||||||
ands r3, r0, #0xe00000 @ extract LoUIS from clidr
|
ALT_SMP(ands r3, r0, #(7 << 21)) @ extract LoUIS from clidr
|
||||||
mov r3, r3, lsr #20 @ r3 = LoUIS * 2
|
ALT_UP(ands r3, r0, #(7 << 27)) @ extract LoUU from clidr
|
||||||
|
ALT_SMP(mov r3, r3, lsr #20) @ r3 = LoUIS * 2
|
||||||
|
ALT_UP(mov r3, r3, lsr #26) @ r3 = LoUU * 2
|
||||||
moveq pc, lr @ return if level == 0
|
moveq pc, lr @ return if level == 0
|
||||||
mov r10, #0 @ r10 (starting level) = 0
|
mov r10, #0 @ r10 (starting level) = 0
|
||||||
b flush_levels @ start flushing cache levels
|
b flush_levels @ start flushing cache levels
|
||||||
|
|
Loading…
Add table
Reference in a new issue