1. 09 11月, 2005 1 次提交
    • N
      [PATCH] sched: disable preempt in idle tasks · 5bfb5d69
      Nick Piggin 提交于
      Run idle threads with preempt disabled.
      
      Also corrected a bugs in arm26's cpu_idle (make it actually call schedule()).
      How did it ever work before?
      
      Might fix the CPU hotplugging hang which Nigel Cunningham noted.
      
      We think the bug hits if the idle thread is preempted after checking
      need_resched() and before going to sleep, then the CPU offlined.
      
      After calling stop_machine_run, the CPU eventually returns from preemption and
      into the idle thread and goes to sleep.  The CPU will continue executing
      previous idle and have no chance to call play_dead.
      
      By disabling preemption until we are ready to explicitly schedule, this bug is
      fixed and the idle threads generally become more robust.
      
      From: alexs <ashepard@u.washington.edu>
      
        PPC build fix
      
      From: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
      
        MIPS build fix
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NYoichi Yuasa <yuasa@hh.iij4u.or.jp>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5bfb5d69
  2. 07 11月, 2005 2 次提交
  3. 03 11月, 2005 3 次提交
  4. 01 11月, 2005 1 次提交
  5. 28 10月, 2005 1 次提交
  6. 26 10月, 2005 2 次提交
    • P
      powerpc: Merge rtas.c into arch/powerpc/kernel · 033ef338
      Paul Mackerras 提交于
      This splits arch/ppc64/kernel/rtas.c into arch/powerpc/kernel/rtas.c,
      which contains generic RTAS functions useful on any CHRP platform,
      and arch/powerpc/platforms/pseries/rtas-fw.[ch], which contain
      some pSeries-specific firmware flashing bits.  The parts of rtas.c
      that are to do with pSeries-specific error logging are protected
      by a new CONFIG_RTAS_ERROR_LOGGING symbol.  The inclusion of rtas.o
      is controlled by the CONFIG_PPC_RTAS symbol, and the relevant
      platforms select that.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      033ef338
    • P
      powerpc: Merge i8259.c into arch/powerpc/sysdev · f9bd170a
      Paul Mackerras 提交于
      This changes the parameters for i8259_init so that it takes two
      parameters: a physical address for generating an interrupt
      acknowledge cycle, and an interrupt number offset.  i8259_init
      now sets the irq_desc[] for its interrupts; all the callers
      were doing this, and that code is gone now.  This also defines
      a CONFIG_PPC_I8259 symbol to select i8259.o for inclusion, and
      makes the platforms that need it select that symbol.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f9bd170a
  7. 20 10月, 2005 2 次提交
  8. 19 10月, 2005 1 次提交
    • P
      powerpc: Merge machdep.h · 143a1dec
      Paul Mackerras 提交于
      A few things change for consistency between ppc32 and ppc64:
      idle functions return void; *_get_boot_time functions return
      unsigned long (i.e. time_t) rather than filling in a struct rtc_time
      (since that's useful to the callers and easier for pmac to
      generate); *_get_rtc_time and *_set_rtc_time functions take
      a struct rtc_time; irq_canonicalize is gone; nvram_sync returns
      void.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      143a1dec
  9. 10 10月, 2005 1 次提交
  10. 28 9月, 2005 1 次提交
  11. 27 9月, 2005 1 次提交
  12. 13 9月, 2005 1 次提交
    • P
      [PATCH] ppc64: Make eeh_init function again · 0160f53e
      Paul Mackerras 提交于
      My patch "Separate pci bits out of struct device_node" (commit
      1635317f) had the unfortunate
      side-effect that it stopped eeh_init() from working correctly.
      
      It needs the pointers set up by find_and_init_phbs(), but it was being
      called just before find_and_init_phbs().  That meant that we didn't
      enable EEH (pSeries PCI error recovery) on any devices, and that meant
      that on POWER5 systems, the hypervisor wouldn't let us enable memory or
      I/O space access to any devices, and their drivers got somewhat
      confused.
      
      This fixes it by moving the eeh_init call after find_and_init_phbs.
      Tested on a POWER5 partition.
      Signed-of-by: NPaul Mackerras <paulus@samba.org>
      Signed-of-by: NLinus Torvalds <torvalds@osdl.org>
      0160f53e
  13. 12 9月, 2005 1 次提交
    • P
      ppc64: Set up PCI tree from Open Firmware device tree · 4267292b
      Paul Mackerras 提交于
      This adds code which gives us the option on ppc64 of instantiating the
      PCI tree (the tree of pci_bus and pci_dev structs) from the Open
      Firmware device tree rather than by probing PCI configuration space.
      The OF device tree has a node for each PCI device and bridge in the
      system, with properties that tell us what addresses the firmware has
      configured for them and other details.
      
      There are a couple of reasons why this is needed.  First, on systems
      with a hypervisor, there is a PCI-PCI bridge per slot under the PCI
      host bridges.  These PCI-PCI bridges have special isolation features
      for virtualization.  We can't write to their config space, and we are
      not supposed to be reading their config space either.  The firmware
      tells us about the address ranges that they pass in the OF device
      tree.
      
      Secondly, on powermacs, the interrupt controller is in a PCI device
      that may be behind a PCI-PCI bridge.  If we happened to take an
      interrupt just at the point when the device or a bridge on the path to
      it was disabled for probing, we would crash when we try to access the
      interrupt controller.
      
      I have implemented a platform-specific function which is called for
      each PCI bridge (host or PCI-PCI) to say whether the code should look
      in the device tree or use normal PCI probing for the devices under
      that bridge.  On pSeries machines we use the device tree if we're
      running under a hypervisor, otherwise we use normal probing.  On
      powermacs we use normal probing for the AGP bridge, since the device
      for the AGP bridge itself isn't shown in the device tree (at least on
      my G5), and the device tree for everything else.
      
      This has been tested on a dual G5 powermac, a partition on a POWER5
      machine (running under the hypervisor), and a legacy iSeries
      partition.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      4267292b
  14. 06 9月, 2005 2 次提交
  15. 29 8月, 2005 5 次提交
  16. 08 7月, 2005 3 次提交
  17. 26 6月, 2005 1 次提交
    • R
      [PATCH] ppc64: kexec support for ppc64 · fce0d574
      R Sharada 提交于
      This patch implements the kexec support for ppc64 platforms.
      
      A couple of notes:
      
      1)  We copy the pages in virtual mode, using the full base kernel
          and a statically allocated stack.   At kexec_prepare time we
          scan the pages and if any overlap our (0, _end[]) range we
          return -ETXTBSY.
      
          On PowerPC 64 systems running in LPAR (logical partitioning)
          mode, only a small region of memory, referred to as the RMO,
          can be accessed in real mode.  Since Linux runs with only one
          zone of memory in the memory allocator, and it can be orders of
          magnitude more memory than the RMO, looping until we allocate
          pages in the source region is not feasible.  Copying in virtual
          means we don't have to write a hash table generation and call
          hypervisor to insert translations, instead we rely on the pinned
          kernel linear mapping.  The kernel already has move to linked
          location built in, so there is no requirement to load it at 0.
      
          If we want to load something other than a kernel, then a stub
          can be written to copy a linear chunk in real mode.
      
      2)  The start entry point gets passed parameters from the kernel.
          Slaves are started at a fixed address after copying code from
          the entry point.
      
          All CPUs get passed their firmware assigned physical id in r3
          (most calling conventions use this register for the first
          argument).
      
          This is used to distinguish each CPU from all other CPUs.
          Since firmware is not around, there is no other way to obtain
          this information other than to pass it somewhere.
      
          A single CPU, referred to here as the master and the one executing
          the kexec call, branches to start with the address of start in r4.
          While this can be calculated, we have to load it through a gpr to
          branch to this point so defining the register this is contained
          in is free.  A stack of unspecified size is available at r1
          (also common calling convention).
      
          All remaining running CPUs are sent to start at absolute address
          0x60 after copying the first 0x100 bytes from start to address 0.
          This convention was chosen because it matches what the kernel
          has been doing itself.  (only gpr3 is defined).
      
          Note: This is not quite the convention of the kexec bootblock v2
          in the kernel.  A stub has been written to convert between them,
          and we may adjust the kernel in the future to allow this directly
          without any stub.
      
      3)  Destination pages can be placed anywhere, even where they
          would not be accessible in real mode.  This will allow us to
          place ram disks above the RMO if we choose.
      Signed-off-by: NMilton Miller <miltonm@bga.com>
      Signed-off-by: NR Sharada <sharada@in.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fce0d574
  18. 23 6月, 2005 4 次提交
    • J
      [PATCH] pSeries - read irqs dynamically · dad32bbf
      John Rose 提交于
      For I/O DLPAR to work properly, the kernel needs to allow for dynamic
      assignment of the irq field of the pci_dev structure upon dynamic bus
      addition.  This patch moves the assignment of that field from
      pSeries_final_fixup() to pcibios_fixup_bus(), which enables dynamic
      assignment for the children of a newly added bus.
      
      Currently, pci_devs receive their irq numbers in one of two ways.  The
      irq line is either read at boot for all pci_devs, or read by the rpaphp
      module at slot enable time.  The latter is no longer sufficient for
      DLPAR addition of slots that don't qualify as PCI-hotplug capable.
      This solution handles the cases of boot and dynamic add.
      Signed-off-by: NJohn Rose <johnrose@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      dad32bbf
    • A
      [PATCH] ppc64: pSeries_progress -> rtas_progress · 6566c6f1
      Arnd Bergmann 提交于
      The pSeries_progress function is called from some places in the rtas code,
      which may also be used by non-pSeries platforms.
      Though pSeries is currently the only platform type that implements
      display-character, the code is actually generic enough to be part of
      the rtas subsystem.
      
      I hit a bug here because the generic rtas code tried calling ppc_md.progress,
      which points to an __init function on most platforms.
      
      We could also clear the ppc_md.progress pointer when freeing the init memory
      to make it more explicit that ppc_md.progress must not be called after
      bootup.
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      6566c6f1
    • A
      [PATCH] ppc64: rename pSeries rtc functions into rtas_* · 773bf9c4
      Arnd Bergmann 提交于
      The rtc rtas functions are not pSeries specific but can
      also be used by BPA and other SLOF based platforms
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      773bf9c4
    • A
      [PATCH] ppc64: consolidate calibrate_decr implementations · 10f7e7c1
      Arnd Bergmann 提交于
      pSeries and maple have almost the same code for calibrate_decr,
      and BPA would need yet another copy. Instead, I'm moving the
      code to arch/ppc64/kernel/time.c.
      
      Some of the related declarations were missing from header
      files, so I'm moving those as well.
      
      It makes sense to merge this with the pmac function of the
      same name, so we end up having just one implemetation for
      iSeries and one for Open Firmware based machines.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      10f7e7c1
  19. 17 4月, 2005 2 次提交
    • B
      [PATCH] ppc64: Fix semantics of __ioremap · dfbacdc1
      Benjamin Herrenschmidt 提交于
      This patch fixes ppc64 __ioremap() so that it stops adding implicitely
      _PAGE_GUARDED when the cache is not writeback, and instead, let the callers
      provide the flag they want here.  This allows things like framebuffers to
      explicitely request a non-cacheable and non-guarded mapping which is more
      efficient for that type of memory without side effects.  The patch also
      fixes all current callers to add _PAGE_GUARDED except btext, which is fine
      without it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      dfbacdc1
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4