1. 06 10月, 2012 1 次提交
    • J
      cross-arch: don't corrupt personality flags upon exec() · 16f3e95b
      Jiri Kosina 提交于
      Historically, the top three bytes of personality have been used for
      things such as ADDR_NO_RANDOMIZE, which made sense only for specific
      architectures.
      
      We now however have a flag there that is general no matter the
      architecture (UNAME26); generally we have to be careful to preserve the
      personality flags across exec().
      
      This patch tries to fix all architectures that forcefully overwrite
      personality flags during exec() (ppc32 and s390 have been fixed recently
      by commits f9783ec8 ("[S390] Do not clobber personality flags on
      exec") and 59e4c3a2 ("powerpc/32: Don't clobber personality flags on
      exec") in a similar way already).
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      16f3e95b
  2. 04 10月, 2012 6 次提交
  3. 03 10月, 2012 1 次提交
  4. 31 7月, 2012 1 次提交
  5. 27 6月, 2012 1 次提交
  6. 02 6月, 2012 2 次提交
  7. 17 5月, 2012 1 次提交
    • S
      fork: move the real prepare_to_copy() users to arch_dup_task_struct() · 55ccf3fe
      Suresh Siddha 提交于
      Historical prepare_to_copy() is mostly a no-op, duplicated for majority of
      the architectures and the rest following the x86 model of flushing the extended
      register state like fpu there.
      
      Remove it and use the arch_dup_task_struct() instead.
      Suggested-by: NOleg Nesterov <oleg@redhat.com>
      Suggested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Link: http://lkml.kernel.org/r/1336692811-30576-1-git-send-email-suresh.b.siddha@intel.comAcked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      55ccf3fe
  8. 12 5月, 2012 1 次提交
  9. 08 4月, 2012 1 次提交
  10. 02 4月, 2012 1 次提交
  11. 30 3月, 2012 1 次提交
  12. 29 3月, 2012 3 次提交
  13. 28 3月, 2012 2 次提交
  14. 24 3月, 2012 1 次提交
  15. 23 3月, 2012 7 次提交
    • M
      microblaze: Handle TLB skip size dynamically · e02db0aa
      Michal Simek 提交于
      This patch fix the problem with rootfs on JFFS2 with early printk
      console turned on.
      
      The origin version used TLB63 for temporary early printk mapping.
      The code expect that kernel is not able to use all 64 TLB entries
      till early printk console is remapped by ioremap. After that
      temporary mapping on TLB63 is silently lost.
      This expectation give the opportunity to have early console pretty
      early.
      
      Microblaze systems with JFFS2 rootfs with early printk console turned on
      used more than 64 TLB entries before kernel can remap early console.
      Based on that kernel does access to bad area because early printk mapping
      is rewritten.
      
      This patch introduces tlb_skip variable which dynamically stores number
      of skipped TLB entries from the TLB0. skip_tlb=2 means that TLB0 and TLB1
      should be skipped.
      
      MICROBLAZE_TLB_SKIP defines how many TLB is skipped at the kernel start.
      They can be used for user purpose.
      
      TLB 63 is used for temporary LMB mapping (MICROBLAZE_LMB_TLB_ID).
      
      Also clean TLBLO when kernel starts.
      
      For specific kernel sizes kernel can use just one TLB. Detect this case
      and use the second TLB for general purpose.
      
      Change _tlbia function to flush TLB entries from tlb_skip to TLB_SIZE.
      
      Export tlb_skip size through debugfs.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      e02db0aa
    • M
      microblaze: Introduce TLB skip size · 1451d1d8
      Michal Simek 提交于
      TLB skip size direct how many TLBs is skipped.
      Currently TLB0 and TLB1 are used for Linux kernel mapping
      that's why their are skipped.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      1451d1d8
    • M
      microblaze: Improve TLB calculation for small systems · 95b0f9ea
      Michal Simek 提交于
      Systems with small amount of memory need to be handled
      differently. Linux can't allocate the whole 32MB with two TLBs
      because then there is no MMU protection.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      95b0f9ea
    • M
      microblaze: Fix mapin_ram function · 7c0d2615
      Michal Simek 提交于
      Fix how many pages are allocated in mapin_ram. It is lowmem_size
      not setup CONFIG_LOWMEM_SIZE because it is the same for all systems.
      Which means that wrong pages are allocated if memory size is smaller
      than CONFIG_LOWMEM_SIZE. It has dramatic impact on bootup time.
      On sp605 MMU full hw design is 7s.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      7c0d2615
    • M
      microblaze: Highmem support · 2f2f371f
      Michal Simek 提交于
      The first highmem implementation.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      2f2f371f
    • M
      microblaze: Introduce fixmap · 41938761
      Michal Simek 提交于
      Fixmap will be used for highmem support.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      41938761
    • M
      microblaze: mm: Fix lowmem max memory size limits · 83a92529
      Michal Simek 提交于
      Use CONFIG_LOWMEM_SIZE if system has larger ram size.
      For system with larger ram size, enable HIGMEM support.
      
      Also setup limitation for memblock and use memblock
      allocation in lowmem region.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      83a92529
  16. 24 2月, 2012 3 次提交
  17. 16 2月, 2012 1 次提交
  18. 15 2月, 2012 1 次提交
  19. 20 1月, 2012 1 次提交
    • D
      microblaze: generic atomic64 support · eacb6ec9
      Daniel Borkmann 提交于
      This tiny patch adds generic atomic64 support for the Microblaze
      architecture.
      
      The patch is against the latest linux-2.6-microblaze tree. It also
      fixes the kernel build for microblaze:
      
      Error log:
      CC kernel/trace/trace_clock.o
      kernel/trace/trace_clock.c:117: error: expected '=', ',', ';', 'asm'
      or '__attribute__' before 'trace_counter'
      kernel/trace/trace_clock.c: In function 'trace_clock_counter':
      kernel/trace/trace_clock.c:126: error: implicit declaration of
      function 'atomic64_add_return'
      kernel/trace/trace_clock.c:126: error: 'trace_counter' undeclared
      (first use in this function)
      kernel/trace/trace_clock.c:126: error: (Each undeclared identifier is
      reported only once
      kernel/trace/trace_clock.c:126: error: for each function it appears in.)
      make[2]: *** [kernel/trace/trace_clock.o] Error 1
      make[1]: *** [kernel/trace] Error 2
      make: *** [kernel] Error 2
      Signed-off-by: NAriane Keller <ariane.keller@tik.ee.ethz.ch>
      Signed-off-by: NDaniel Borkmann <daniel.borkmann@tik.ee.ethz.ch>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      eacb6ec9
  20. 18 1月, 2012 1 次提交
    • E
      Audit: push audit success and retcode into arch ptrace.h · d7e7528b
      Eric Paris 提交于
      The audit system previously expected arches calling to audit_syscall_exit to
      supply as arguments if the syscall was a success and what the return code was.
      Audit also provides a helper AUDITSC_RESULT which was supposed to simplify things
      by converting from negative retcodes to an audit internal magic value stating
      success or failure.  This helper was wrong and could indicate that a valid
      pointer returned to userspace was a failed syscall.  The fix is to fix the
      layering foolishness.  We now pass audit_syscall_exit a struct pt_reg and it
      in turns calls back into arch code to collect the return value and to
      determine if the syscall was a success or failure.  We also define a generic
      is_syscall_success() macro which determines success/failure based on if the
      value is < -MAX_ERRNO.  This works for arches like x86 which do not use a
      separate mechanism to indicate syscall failure.
      
      We make both the is_syscall_success() and regs_return_value() static inlines
      instead of macros.  The reason is because the audit function must take a void*
      for the regs.  (uml calls theirs struct uml_pt_regs instead of just struct
      pt_regs so audit_syscall_exit can't take a struct pt_regs).  Since the audit
      function takes a void* we need to use static inlines to cast it back to the
      arch correct structure to dereference it.
      
      The other major change is that on some arches, like ia64, MIPS and ppc, we
      change regs_return_value() to give us the negative value on syscall failure.
      THE only other user of this macro, kretprobe_example.c, won't notice and it
      makes the value signed consistently for the audit functions across all archs.
      
      In arch/sh/kernel/ptrace_64.c I see that we were using regs[9] in the old
      audit code as the return value.  But the ptrace_64.h code defined the macro
      regs_return_value() as regs[3].  I have no idea which one is correct, but this
      patch now uses the regs_return_value() function, so it now uses regs[3].
      
      For powerpc we previously used regs->result but now use the
      regs_return_value() function which uses regs->gprs[3].  regs->gprs[3] is
      always positive so the regs_return_value(), much like ia64 makes it negative
      before calling the audit code when appropriate.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Acked-by: H. Peter Anvin <hpa@zytor.com> [for x86 portion]
      Acked-by: Tony Luck <tony.luck@intel.com> [for ia64]
      Acked-by: Richard Weinberger <richard@nod.at> [for uml]
      Acked-by: David S. Miller <davem@davemloft.net> [for sparc]
      Acked-by: Ralf Baechle <ralf@linux-mips.org> [for mips]
      Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> [for ppc]
      d7e7528b
  21. 07 1月, 2012 2 次提交
  22. 05 1月, 2012 1 次提交