1. 26 1月, 2007 1 次提交
  2. 24 1月, 2007 3 次提交
    • I
      [POWERPC] Add IRQ remapping hook · acc900ef
      Ishizaki Kou 提交于
      This patch adds irq remapping hook. On interrupt mechanism on Beat,
      when an irq outlet which has an id which is formerly used is created,
      remapping the irq is required.
      Signed-off-by: NKou Ishizaki <kou.ishizaki@toshiba.co.jp>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      acc900ef
    • I
      [POWERPC] Add a field for each specific bus to struct pci_controller · 5b7c726f
      Ishizaki Kou 提交于
      Struct pci_controller doesn't prepare for the dependent data of each
      specific bus. This patch adds private member to struct pci_controller.
      Signed-off-by: NKou Ishizaki <kou.ishizaki@toshiba.co.jp>
      Acked-by: NArnd Bergmann <arnd.bergmann@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5b7c726f
    • A
      [POWERPC] Move ELF_ET_DYN_BASE up to 512MB point · 7e60d1b4
      Anton Blanchard 提交于
      I often test new versions of glibc by doing:
      
      LD_LIBRARY_PATH=/XXX/lib /XXX/lib/ld.so.1 <binary>
      
      One test case ended up SEGV'ing. Upon closer inspection ld.so was loaded
      at 0x8000000 (128MB) with the heap right after it. Since we normally
      link binaries at 0x10000000 (256MB) we only had about 128MB of space for
      the heap:
      
      00100000-00103000 r-xp 00100000 00:00 0           [vdso]
      08000000-0801e000 r-xp 00000000 00:01 33079       /lib/ld-2.5.so
      0802d000-0802f000 rwxp 0001d000 00:01 33079       /lib/ld-2.5.so
      0802f000-08050000 rwxp 0802f000 00:00 0           [heap]
      0fe91000-0ffd9000 r-xp 00000000 00:01 33082       /lib/libc-2.5.so
      0ffd9000-0ffe8000 ---p 00148000 00:01 33082       /lib/libc-2.5.so
      0ffe8000-0ffea000 r--p 00147000 00:01 33082       /lib/libc-2.5.so
      0ffea000-0ffed000 rwxp 00149000 00:01 33082       /lib/libc-2.5.so
      10000000-10004000 r-xp 00000000 00:01 76          /bin/sleep
      10013000-10014000 rwxp 00003000 00:01 76          /bin/sleep
      ffb41000-ffb56000 rw-p ffb41000 00:00 0           [stack]
      
      One way to fix this is move ELF_ET_DYN_BASE from 0x08000000 to 0x20000000.
      This allows 128MB for the binary (hopefully enough for even the most
      crazy c++ apps), and with our current layout we will grow the heap up
      and the stack down, allowing potentially gigabytes of heap:
      
      00100000-00103000 r-xp 00100000 00:00 0           [vdso]
      0fe8a000-0ffd3000 r-xp 00000000 00:01 3350        /lib/tls/libc-2.3.6.so
      0ffd3000-0ffe3000 ---p 00149000 00:01 3350        /lib/tls/libc-2.3.6.so
      0ffe3000-0ffea000 r--p 00149000 00:01 3350        /lib/tls/libc-2.3.6.so
      0ffea000-0ffee000 rwxp 00150000 00:01 3350        /lib/tls/libc-2.3.6.so
      10000000-10004000 r-xp 00000000 00:01 76          /bin/sleep
      10013000-10014000 rwxp 00003000 00:01 76          /bin/sleep
      20000000-20018000 r-xp 00000000 00:01 3478        /lib/ld-2.3.6.so
      20028000-20029000 r--p 00018000 00:01 3478        /lib/ld-2.3.6.so
      20029000-2002a000 rwxp 00019000 00:01 3478        /lib/ld-2.3.6.so
      2002a000-2004b000 rwxp 2002a000 00:00 0           [heap]
      ffd67000-ffd7c000 rw-p ffd67000 00:00 0           [stack]
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7e60d1b4
  3. 22 1月, 2007 1 次提交
    • R
      [POWERPC] atomic_dec_if_positive sign extension fix · 434f98c4
      Robert Jennings 提交于
      On 64-bit machines, if an atomic counter is explicitly set to a
      negative value, the atomic_dec_if_positive function will decrement and
      store the next smallest value in the atomic counter, contrary to its
      intended operation.
      
      The comparison to determine if the decrement will make the result
      negative was done by the "addic." instruction, which operates on a
      64-bit value, namely the zero-extended word loaded from the atomic
      variable.  This patch uses an explicit word compare (cmpwi) and
      changes the addic. to an addi (also changing "=&r" to "=&b" so that r0
      isn't used, and addi doesn't become li).
      
      This also fixes a bug for both 32-bit and 64-bit in that previously
      0x80000000 was considered positive, since the result after
      decrementing is positive.  Now it is considered negative.
      
      Also, I clarify the return value in the comments just to make it clear
      that the value returned is always the decremented value, even if that
      value is not stored back to the atomic counter.
      Signed-off-by: NRobert Jennings <rcj@linux.vnet.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      434f98c4
  4. 12 1月, 2007 1 次提交
    • A
      [PATCH] FD_ZERO build fix · aae7d14f
      Andrew Morton 提交于
      unionfs managed to hit this on s390.  Some architectures use __ptr_t in their
      FD_ZERO implementation.  We don't have a __ptr_t.  Switch them over to plain
      old void*.
      
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      aae7d14f
  5. 09 1月, 2007 3 次提交
    • A
      [POWERPC] Fix bugs in the hypervisor call stats code · dc40127c
      Anton Blanchard 提交于
      There were a few issues with the HCALL_STATS code:
      
      - PURR cpu feature checks were backwards
      - We iterated one entry off the end of the hcall_stats array
      - Remove dead update_hcall_stats() function prototype
      
      I noticed one thing while debugging, and that is we call H_ENTER (to set
      up the MMU hashtable in early init) before we have done the cpu fixups.
      This means we will execute the PURR SPR reads even on a CPU that isnt
      capable of it. I wonder if we can move the CPU feature fixups earlier.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      dc40127c
    • S
      [POWERPC] 52xx: Don't use device_initcall to probe of_platform_bus · 5c334eed
      Sylvain Munaut 提交于
      Using device_initcall makes it happen for every platform that
      compiles this file in. This is really bad, for obvious reasons.
      
      Instead, we use the .init field of the machine description. If
      the platform needs the hook to do something specific it can provides
      its own function and call mpc52xx_declare_of_platform_devices from
      there. If not, the mpc52xx_declare_of_platform_devices function can
      directly be used as the init hook.
      Signed-off-by: NSylvain Munaut <tnt@246tNt.com>
      Acked-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5c334eed
    • D
      [POWERPC] Fix manual assembly WARN_ON() in enter_rtas(). · 007d88d0
      David Woodhouse 提交于
      When we switched over to the generic BUG mechanism we forgot to change
      the assembly code which open-codes a WARN_ON() in enter_rtas(), so the
      bug table got corrupted.
      
      This patch provides an EMIT_BUG_ENTRY macro for use in assembly code,
      and uses it in entry_64.S. Tested with CONFIG_DEBUG_BUGVERBOSE on ppc64
      but not without -- I tried to turn it off but it wouldn't go away; I
      suspect Aunt Tillie probably needed it.
      
      This version gets __FILE__ and __LINE__ right in the assembly version --
      rather than saying include/asm-powerpc/bug.h line 21 every time which is
      a little suboptimal.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      007d88d0
  6. 19 12月, 2006 1 次提交
  7. 14 12月, 2006 2 次提交
    • R
      [PATCH] Optimize D-cache alias handling on fork · ec8c0446
      Ralf Baechle 提交于
      Virtually index, physically tagged cache architectures can get away
      without cache flushing when forking.  This patch adds a new cache
      flushing function flush_cache_dup_mm(struct mm_struct *) which for the
      moment I've implemented to do the same thing on all architectures
      except on MIPS where it's a no-op.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ec8c0446
    • R
      [PATCH] PM: Fix SMP races in the freezer · 8a102eed
      Rafael J. Wysocki 提交于
      Currently, to tell a task that it should go to the refrigerator, we set the
      PF_FREEZE flag for it and send a fake signal to it.  Unfortunately there
      are two SMP-related problems with this approach.  First, a task running on
      another CPU may be updating its flags while the freezer attempts to set
      PF_FREEZE for it and this may leave the task's flags in an inconsistent
      state.  Second, there is a potential race between freeze_process() and
      refrigerator() in which freeze_process() running on one CPU is reading a
      task's PF_FREEZE flag while refrigerator() running on another CPU has just
      set PF_FROZEN for the same task and attempts to reset PF_FREEZE for it.  If
      the refrigerator wins the race, freeze_process() will state that PF_FREEZE
      hasn't been set for the task and will set it unnecessarily, so the task
      will go to the refrigerator once again after it's been thawed.
      
      To solve first of these problems we need to stop using PF_FREEZE to tell
      tasks that they should go to the refrigerator.  Instead, we can introduce a
      special TIF_*** flag and use it for this purpose, since it is allowed to
      change the other tasks' TIF_*** flags and there are special calls for it.
      
      To avoid the freeze_process()-refrigerator() race we can make
      freeze_process() to always check the task's PF_FROZEN flag after it's read
      its "freeze" flag.  We should also make sure that refrigerator() will
      always reset the task's "freeze" flag after it's set PF_FROZEN for it.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8a102eed
  8. 12 12月, 2006 1 次提交
  9. 11 12月, 2006 3 次提交
    • J
      [POWERPC] Generic BUG for powerpc · 73c9ceab
      Jeremy Fitzhardinge 提交于
      This makes powerpc use the generic BUG machinery.  The biggest reports the
      function name, since it is redundant with kallsyms, and not needed in general.
      
      There is an overall reduction of code, since module_32/64 duplicated several
      functions.
      
      Unfortunately there's no way to tell gcc that BUG won't return, so the BUG
      macro includes a goto loop.  This will generate a real jmp instruction, which
      is never used.
      
      [akpm@osdl.org: build fix]
      [paulus@samba.org: remove infinite loop in BUG_ON]
      Signed-off-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Hugh Dickens <hugh@veritas.com>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      73c9ceab
    • K
      [POWERPC] Only export __mtdcr/__mfdcr if CONFIG_PPC_DCR is set · 45d8e7aa
      Kumar Gala 提交于
      On 85xx we don't build in dcr support because the core doesn't implement the
      instructions.  This caused problems when building an 85xx kernel.  Additionally
      made it so we only build __mtdcr/__mfdcr if we are CONFIG_PPC_DCR_NATIVE.
      
      The 85xx build issue wasPointed out by Dai Haruki.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      45d8e7aa
    • C
      [PATCH] sched: add option to serialize load balancing · 08c183f3
      Christoph Lameter 提交于
      Large sched domains can be very expensive to scan.  Add an option SD_SERIALIZE
      to the sched domain flags.  If that flag is set then we make sure that no
      other such domain is being balanced.
      
      [akpm@osdl.org: build fix]
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Cc: Peter Williams <pwil3058@bigpond.net.au>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
      Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      08c183f3
  10. 09 12月, 2006 5 次提交
  11. 08 12月, 2006 14 次提交
  12. 05 12月, 2006 1 次提交
  13. 04 12月, 2006 4 次提交