1. 06 5月, 2010 6 次提交
    • M
      powerpc/mm: Track backing pages allocated by vmemmap_populate() · 91eea67c
      Mark Nelson 提交于
      We need to keep track of the backing pages that get allocated by
      vmemmap_populate() so that when we use kdump, the dump-capture kernel knows
      where these pages are.
      
      We use a simple linked list of structures that contain the physical address
      of the backing page and corresponding virtual address to track the backing
      pages.
      To save space, we just use a pointer to the next struct vmemmap_backing. We
      can also do this because we never remove nodes.  We call the pointer "list"
      to be compatible with changes made to the crash utility.
      
      vmemmap_populate() is called either at boot-time or on a memory hotplug
      operation. We don't have to worry about the boot-time calls because they
      will be inherently single-threaded, and for a memory hotplug operation
      vmemmap_populate() is called through:
      sparse_add_one_section()
                  |
                  V
      kmalloc_section_memmap()
                  |
                  V
      sparse_mem_map_populate()
                  |
                  V
      vmemmap_populate()
      and in sparse_add_one_section() we're protected by pgdat_resize_lock().
      So, we don't need a spinlock to protect the vmemmap_list.
      
      We allocate space for the vmemmap_backing structs by allocating whole pages
      in vmemmap_list_alloc() and then handing out chunks of this to
      vmemmap_list_populate().
      
      This means that we waste at most just under one page, but this keeps the code
      is simple.
      Signed-off-by: NMark Nelson <markn@au1.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      91eea67c
    • M
      powerpc: Correct parport interrupt parsing · 7cad1978
      Martyn Welch 提交于
      Currently the parsing of the device tree in
      arch/powerpc/include/asm/parport.h assumes that the interrupt provided in
      the parallel port node is a valid virtual irq. The values for the
      interrupts provided in the device tree should have meaning in the context
      of the driver for the specific interrupt controller to which the interrupt
      is connected and irq_of_parse_and_map() should be used to determine the
      correct virtual irq.
      Signed-off-by: NMartyn Welch <martyn.welch@ge.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7cad1978
    • B
      powerpc: Fix CONFIG_DEBUG_PAGEALLOC on 603/e300 · 75c1d539
      Benjamin Herrenschmidt 提交于
      So we tried to speed things up a bit using flush_hash_pages() directly
      but that falls over on 603 of course meaning we fail to flush the TLB
      properly and we may even end up having it corrupt memory randomly by
      accessing a hash table that doesn't exist.
      
      This removes the "optimization" by always going through flush_tlb_page()
      for now at least.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      75c1d539
    • M
      powerpc/pseries: Only call start-cpu when a CPU is stopped · aef40e87
      Michael Neuling 提交于
      Currently we always call start-cpu irrespective of if the CPU is
      stopped or not. Unfortunatley on POWER7, firmware seems to not like
      start-cpu being called when a cpu already been started.  This was not
      the case on POWER6 and earlier.
      
      This patch checks to see if the CPU is stopped or not via an
      query-cpu-stopped-state call, and only calls start-cpu on CPUs which
      are stopped.
      
      This fixes a bug with kexec on POWER7 on PHYP where only the primary
      thread would make it to the second kernel.
      Reported-by: NAnkita Garg <ankita@linux.vnet.ibm.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      aef40e87
    • M
      powerpc/pseries: Make query_cpu_stopped callable outside hotplug cpu · f8b67691
      Michael Neuling 提交于
      This moves query_cpu_stopped() out of the hotplug cpu code and into
      smp.c so it can called in other places and renames it to
      smp_query_cpu_stopped().
      
      It also cleans up the return values by adding some #defines
      
      Cc: <stable@kernel.org>
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f8b67691
    • S
      powerpc/4xx: Add optional "reset_type" property to control reboot via dts · a32fe93d
      Stefan Roese 提交于
      By setting "reset_type" to one of the following values, the default
      software reset mechanism may be overidden. Here the possible values of
      "reset_type":
      
        1 - PPC4xx core reset
        2 - PPC4xx chip reset
        3 - PPC4xx system reset (default)
      
      This will be used by a new PPC440SPe board port, which needs a "chip
      reset" instead of the default "system reset" to be asserted.
      Signed-off-by: NStefan Roese <sr@denx.de>
      Cc: Josh Boyer <jwboyer@linux.vnet.ibm.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NJosh Boyer <jwboyer@linux.vnet.ibm.com>
      Signed-off-by: NJosh Boyer <jwboyer@linux.vnet.ibm.com>
      a32fe93d
  2. 05 5月, 2010 7 次提交
  3. 13 4月, 2010 1 次提交
  4. 07 4月, 2010 22 次提交
  5. 04 4月, 2010 3 次提交
  6. 03 4月, 2010 1 次提交
    • F
      perf: Always build the powerpc perf_arch_fetch_caller_regs version · 6e03bb5a
      Frederic Weisbecker 提交于
      Now that software events use perf_arch_fetch_caller_regs() too, we
      need the powerpc version to be always built.
      
      Fixes the following build error:
      
      	(.text+0x3210): undefined reference to `perf_arch_fetch_caller_regs'
      	(.text+0x3324): undefined reference to `perf_arch_fetch_caller_regs'
      	(.text+0x33bc): undefined reference to `perf_arch_fetch_caller_regs'
      	(.text+0x33ec): undefined reference to `perf_arch_fetch_caller_regs'
      	(.text+0xd4a0): undefined reference to `perf_arch_fetch_caller_regs'
      	arch/powerpc/kernel/built-in.o:(.text+0xd528): more undefined references to `perf_arch_fetch_caller_regs' follow
      	make[1]: *** [.tmp_vmlinux1] Error 1
      	make: *** [sub-make] Error 2
      Reported-by: NMichael Ellerman <michael@ellerman.id.au>
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      6e03bb5a