1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

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:
Linus Torvalds 2012-12-20 17:56:23 -08:00
commit f59dc2bb5a
6 changed files with 11 additions and 7 deletions

View file

@ -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

View file

@ -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;

View file

@ -109,10 +109,12 @@ static void set_segfault(struct pt_regs *regs, unsigned long addr)
{ {
siginfo_t info; siginfo_t info;
down_read(&current->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(&current->mm->mmap_sem);
info.si_signo = SIGSEGV; info.si_signo = SIGSEGV;
info.si_errno = 0; info.si_errno = 0;

View file

@ -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 = .;

View file

@ -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

View file

@ -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