1. 09 1月, 2006 6 次提交
    • A
      [PATCH] spufs: The SPU file system, base · 67207b96
      Arnd Bergmann 提交于
      This is the current version of the spu file system, used
      for driving SPEs on the Cell Broadband Engine.
      
      This release is almost identical to the version for the
      2.6.14 kernel posted earlier, which is available as part
      of the Cell BE Linux distribution from
      http://www.bsc.es/projects/deepcomputing/linuxoncell/.
      
      The first patch provides all the interfaces for running
      spu application, but does not have any support for
      debugging SPU tasks or for scheduling. Both these
      functionalities are added in the subsequent patches.
      
      See Documentation/filesystems/spufs.txt on how to use
      spufs.
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      67207b96
    • H
      [PATCH] powerpc: IBMEBUS bus support · d7a30103
      Heiko J Schick 提交于
      This patch adds the necessary core bus support used by device drivers
      that sit on the IBM GX bus on modern pSeries machines like the Galaxy
      infiniband for example. It provide transparent DMA ops (the low level
      driver works with virtual addresses directly) along with a simple bus
      layer using the Open Firmware matching routines.
      Signed-off-by: NHeiko J Schick <schickhj@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d7a30103
    • D
      [PATCH] syscall entry/exit revamp · 401d1f02
      David Woodhouse 提交于
      This cleanup patch speeds up the null syscall path on ppc64 by about 3%,
      and brings the ppc32 and ppc64 code slightly closer together.
      
      The ppc64 code was checking current_thread_info()->flags twice in the
      syscall exit path; once for TIF_SYSCALL_T_OR_A before disabling
      interrupts, and then again for TIF_SIGPENDING|TIF_NEED_RESCHED etc after
      disabling interrupts. Now we do the same as ppc32 -- check the flags
      only once in the fast path, and re-enable interrupts if necessary in the
      ptrace case.
      
      The patch abolishes the 'syscall_noerror' member of struct thread_info
      and replaces it with a TIF_NOERROR bit in the flags, which is handled in
      the slow path. This shortens the syscall entry code, which no longer
      needs to clear syscall_noerror.
      
      The patch adds a TIF_SAVE_NVGPRS flag which causes the syscall exit slow
      path to save the non-volatile GPRs into a signal frame. This removes the
      need for the assembly wrappers around sys_sigsuspend(),
      sys_rt_sigsuspend(), et al which existed solely to save those registers
      in advance. It also means I don't have to add new wrappers for ppoll()
      and pselect(), which is what I was supposed to be doing when I got
      distracted into this...
      
      Finally, it unifies the ppc64 and ppc32 methods of handling syscall exit
      directly into a signal handler (as required by sigsuspend et al) by
      introducing a TIF_RESTOREALL flag which causes _all_ the registers to be
      reloaded from the pt_regs by taking the ret_from_exception path, instead
      of the normal syscall exit path which stomps on the callee-saved GPRs.
      
      It appears to pass an LTP test run on ppc64, and passes basic testing on
      ppc32 too. Brief tests of ptrace functionality with strace and gdb also
      appear OK. I wouldn't send it to Linus for 2.6.15 just yet though :)
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      401d1f02
    • K
      [PATCH] powerpc: moved ipic code to arch/powerpc · 1cd8e506
      Kumar Gala 提交于
      Moved 83xx and QUICC Engine interrupt handling code into arch/powerpc
      as a precursor of getting 83xx sub-arch building in arch/powerpc.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1cd8e506
    • M
      [PATCH] powerpc: Merge kexec · 3d1229d6
      Michael Ellerman 提交于
      This patch merges, to some extent, the PPC32 and PPC64 kexec implementations.
      
      We adopt the PPC32 approach of having ppc_md callbacks for the kexec functions.
      The current PPC64 implementation becomes the "default" implementation for PPC64
      which platforms can select if they need no special treatment.
      
      I've added these default callbacks to pseries/maple/cell/powermac, this means
      iSeries no longer supports kexec - but it never worked anyway.
      
      I've renamed PPC32's machine_kexec_simple to default_machine_kexec, inline with
      PPC64. Judging by the comments it might be better named machine_kexec_non_of,
      or something, but at the moment it's the only implementation for PPC32 so it's
      the "default".
      
      Kexec requires machine_shutdown(), which is in machine_kexec.c on PPC32, but we
      already have in setup-common.c on powerpc. All this does is call
      ppc_md.nvram_sync, which only powermac implements, so instead make
      machine_shutdown a ppc_md member and have it call core99_nvram_sync directly
      on powermac.
      
      I've also stuck relocate_kernel.S into misc_32.S for powerpc.
      
      Built for ARCH=ppc, and 32 & 64 bit ARCH=powerpc, with KEXEC=y/n. Booted on
      P5 LPAR and successfully kexec'ed.
      
      Should apply on top of 493f25ef.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      3d1229d6
    • A
      [PATCH] PPC_PREP: remove unneeded exports · afcc2472
      Adrian Bunk 提交于
      This patch removes the EXPORT_SYMBOL'ed but completely unused variable
      ucSystemType and removes the unneeded EXPORT_SYMBOL(_prep_type).
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Acked-by: NTom Rini <trini@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      afcc2472
  2. 05 1月, 2006 1 次提交
  3. 30 12月, 2005 1 次提交
  4. 22 12月, 2005 1 次提交
    • P
      powerpc: Fix i8259 cascade on pSeries with XICS interrupt controller · 8b1af56b
      Paul Mackerras 提交于
      It turns out that commit f9bd170a
      broke the cascade from XICS to i8259 on pSeries machines; specifically
      we ended up not ever doing the EOI on the XICS for the cascade.  The
      result was that interrupts from the serial ports (and presumably any
      other devices using ISA interrupts) didn't get through.  This fixes
      it and also simplifies the code, by doing the EOI on the XICS in the
      xics_get_irq routine after reading and acking the interrupt on the
      i8259.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8b1af56b
  5. 20 12月, 2005 2 次提交
  6. 16 12月, 2005 1 次提交
  7. 13 12月, 2005 1 次提交
  8. 12 12月, 2005 1 次提交
  9. 09 12月, 2005 3 次提交
    • D
      [PATCH] powerpc: Fix SLB flushing path in hugepage · 23ed6cb9
      David Gibson 提交于
      On ppc64, when opening a new hugepage region, we need to make sure any
      old normal-page SLBs for the area are flushed on all CPUs.  There was
      a bug in this logic - after putting the new hugepage area masks into
      the thread structure, we copied it into the paca (read by the SLB miss
      handler) only on one CPU, not on all.  This could cause incorrect SLB
      entries to be loaded when a multithreaded program was running
      simultaneously on several CPUs.  This patch corrects the error,
      copying the context information into the PACA on all CPUs using the mm
      in question before flushing any existing SLB entries.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      23ed6cb9
    • D
      [PATCH] powerpc: Add missing icache flushes for hugepages · cbf52afd
      David Gibson 提交于
      On most powerpc CPUs, the dcache and icache are not coherent so
      between writing and executing a page, the caches must be flushed.
      Userspace programs assume pages given to them by the kernel are icache
      clean, so we must do this flush between the kernel clearing a page and
      it being mapped into userspace for execute.  We were not doing this
      for hugepages, this patch corrects the situation.
      
      We use the same lazy mechanism as we use for normal pages, delaying
      the flush until userspace actually attempts to execute from the page
      in question.
      
      Tested on G5.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      cbf52afd
    • O
      [PATCH] powerpc: Set cache info defaults · dabcafd3
      Olof Johansson 提交于
      Cache info is setup by walking the device tree in initialize_cache_info().
      However, icache_flush_range might be called before that, in
      slb_initialize()->patch_slb_encoding, which modifies the load immediate
      instructions used with SLB fault code.
      
      Not only that, but depending on memory layout, we might take SLB faults
      during unflatten_device_tree. So that fault will load an SLB entry that
      might not contain the right LLP flags for the segment.
      
      Either we can walk the flattened device tree to setup cache info, or
      we can pick the known defaults that are known to work. Doing it in the
      flattened device tree is hairier since we need to know the machine type
      to know what property to look for, etc, etc.
      
      For now, it's just easier to go with the defaults. Worst thing that
      happens from it is that we might waste a few cycles doing too small
      dcbst/icbi increments.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      dabcafd3
  10. 08 12月, 2005 3 次提交
  11. 05 12月, 2005 2 次提交
  12. 02 12月, 2005 2 次提交
  13. 30 11月, 2005 2 次提交
  14. 29 11月, 2005 2 次提交
    • P
      powerpc: Export __flush_icache_range for 32-bit · 666acb94
      Paul Mackerras 提交于
      Both 32-bit and 64-bit use the same inline flush_icache_range definition
      now, so both need to export __flush_icache_range, not just 64-bit.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      666acb94
    • L
      mm: re-architect the VM_UNPAGED logic · 6aab341e
      Linus Torvalds 提交于
      This replaces the (in my opinion horrible) VM_UNMAPPED logic with very
      explicit support for a "remapped page range" aka VM_PFNMAP.  It allows a
      VM area to contain an arbitrary range of page table entries that the VM
      never touches, and never considers to be normal pages.
      
      Any user of "remap_pfn_range()" automatically gets this new
      functionality, and doesn't even have to mark the pages reserved or
      indeed mark them any other way.  It just works.  As a side effect, doing
      mmap() on /dev/mem works for arbitrary ranges.
      
      Sparc update from David in the next commit.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6aab341e
  15. 25 11月, 2005 2 次提交
  16. 24 11月, 2005 4 次提交
    • D
      [PATCH] powerpc: fix for hugepage areas straddling 4GB boundary · 5e391dc9
      David Gibson 提交于
      Commit 7d24f0b8 fixed bugs in the ppc64 SLB
      miss handler with respect to hugepage handling, and in the process tweaked
      the semantics of the hugepage address masks in mm_context_t.
      
      Unfortunately, it left out a couple of necessary changes to go with that
      change.  First, the in_hugepage_area() macro was not updated to match,
      second prepare_hugepage_range() was not updated to correctly handle
      hugepages regions which straddled the 4GB point.
      
      The latter appears only to cause process-hangs when attempting to map such
      a region, but the former can cause oopses if a get_user_pages() is
      triggered at the wrong point.  This patch addresses both bugs.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5e391dc9
    • J
      [PATCH] kprobes: Fix return probes on sys_execve · 8bf1101b
      Jim Keniston 提交于
      Fix a bug in kprobes that can cause an Oops or even a crash when a return
      probe is installed on one of the following functions: sys_execve,
      do_execve, load_*_binary, flush_old_exec, or flush_thread.  The fix is to
      remove the call to kprobe_flush_task() in flush_thread().  This fix has
      been tested on all architectures for which the return-probes feature has
      been implemented (i386, x86_64, ppc64, ia64).  Please apply.
      
      BACKGROUND
      
      Up to now, we have called kprobe_flush_task() under two situations: when a
      task exits, and when it execs.  Flushing kretprobe_instances on exit is
      correct because (a) do_exit() doesn't return, and (b) one or more
      return-probed functions may be active when a task calls do_exit().  Neither
      is the case for sys_execve() and its callees.
      
      Initially, the mistaken call to kprobe_flush_task() on exec was harmless
      because we put the "real" return address of each active probed function
      back in the stack, just to be safe, when we recycled its
      kretprobe_instance.  When support for ppc64 and ia64 was added, this safety
      measure couldn't be employed, and was eventually dropped even for i386 and
      x86_64.  sys_execve() and its callees were informally blacklisted for
      return probes until this fix was developed.
      Acked-by: NPrasanna S Panchamukhi <prasanna@in.ibm.com>
      Signed-off-by: NJim Keniston <jkenisto@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8bf1101b
    • H
      [PATCH] mm: powerpc init_mm without ptlock · 7ce774b4
      Hugh Dickins 提交于
      Restore an earlier mod which went missing in the powerpc reshuffle: the 4xx
      mmu_mapin_ram does not need to take init_mm.page_table_lock.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7ce774b4
    • H
      [PATCH] mm: powerpc ptlock comments · 01edcd89
      Hugh Dickins 提交于
      Update comments (only) on page_table_lock and mmap_sem in arch/powerpc.
      Removed the comment on page_table_lock from hash_huge_page: since it's no
      longer taking page_table_lock itself, it's irrelevant whether others are; but
      how it is safe (even against huge file truncation?) I can't say.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      01edcd89
  17. 23 11月, 2005 2 次提交
    • O
      [PATCH] powerpc: update my email address · 91f14480
      Olof Johansson 提交于
      Email address update, changing old work address to personal (permanent)
      one.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      91f14480
    • H
      [PATCH] unpaged: VM_UNPAGED · 0b14c179
      Hugh Dickins 提交于
      Although we tend to associate VM_RESERVED with remap_pfn_range, quite a few
      drivers set VM_RESERVED on areas which are then populated by nopage.  The
      PageReserved removal in 2.6.15-rc1 changed VM_RESERVED not to free pages in
      zap_pte_range, without changing those drivers not to set it: so their pages
      just leak away.
      
      Let's not change miscellaneous drivers now: introduce VM_UNPAGED at the core,
      to flag the special areas where the ptes may have no struct page, or if they
      have then it's not to be touched.  Replace most instances of VM_RESERVED in
      core mm by VM_UNPAGED.  Force it on in remap_pfn_range, and the sparc and
      sparc64 io_remap_pfn_range.
      
      Revert addition of VM_RESERVED to powerpc vdso, it's not needed there.  Is it
      needed anywhere?  It still governs the mm->reserved_vm statistic, and special
      vmas not to be merged, and areas not to be core dumped; but could probably be
      eliminated later (the drivers are probably specifying it because in 2.4 it
      kept swapout off the vma, but in 2.6 we work from the LRU, which these pages
      don't get on).
      
      Use the VM_SHM slot for VM_UNPAGED, and define VM_SHM to 0: it serves no
      purpose whatsoever, and should be removed from drivers when we clean up.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Acked-by: NWilliam Irwin <wli@holomorphy.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0b14c179
  18. 19 11月, 2005 4 次提交