1. 21 2月, 2006 5 次提交
  2. 20 2月, 2006 6 次提交
    • M
      [PATCH] powerpc: Fix bug in spinup of renumbered secondary threads · 496b7a51
      Michael Ellerman 提交于
      If the logical and physical cpu ids of a secondary thread don't match, we will
      fail to spin the thread up on pSeries machines due to a bug in pseries/smp.c
      
      We call the RTAS "start-cpu" method with the physical cpu id, the address of
      pSeries_secondary_smp_init and the value to pass that function in r3. Currently
      we pass "lcpu", the logical cpu id, but pSeries_secondary_smp_init expects
      the physical cpu id in r3.
      
      We should be passing pcpu instead.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      496b7a51
    • M
      [PATCH] powerpc: Make UP -> SMP kexec work again · 8fca9270
      Michael Ellerman 提交于
      For UP to SMP kexec to work we need to jump into pSeries_secondary_smp_init
      event on a UP + KEXEC kernel. The secondary cpus will not find their hw_cpu_id
      in the paca and so they'll jump into kexec_wait, ready for a kexec.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8fca9270
    • M
      [PATCH] powerpc: Don't start secondary CPUs in a UP && KEXEC kernel · f018b36f
      Michael Ellerman 提交于
      Because smp_release_cpus() is built for SMP || KEXEC, it's not safe to
      unconditionally call it from setup_system(). On a UP && KEXEC kernel we'll
      start up the secondary CPUs which will then go beserk and we die.
      
      Simple fix is to conditionally call smp_release_cpus() in setup_system(). With
      that in place we don't need the dummy definition of smp_release_cpus() because
      all call sites are #ifdef'ed either SMP or KEXEC.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f018b36f
    • O
      [PATCH] powerpc: Fix OOPS in lparcfg on G5 · 2b9a32ed
      Olof Johansson 提交于
      Fallback gracefully when reading /proc/ppc64/lparcfg when the /rtas
      device node can't be found.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      2b9a32ed
    • O
      [PATCH] powerpc: remove duplicate exports · 0728a2f9
      Olaf Hering 提交于
      A few symbols are exported twice, remove them from ppc_ksyms.c
      Remove users of sys_ctrler in arch/ppc/
      
      WARNING: vmlinux: duplicate symbol '__delay' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol '__up' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol '__down' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol '__down_interruptible' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'sys_ctrler' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strncat' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strncmp' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strchr' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strrchr' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strnlen' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strpbrk' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'memscan' previous definition was in vmlinux
      WARNING: vmlinux: duplicate symbol 'strstr' previous definition was in vmlinux
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0728a2f9
    • P
      powerpc: Keep xtime and gettimeofday in sync · 092b8f34
      Paul Mackerras 提交于
      This fixes a regression which was introduced by moving ppc32 to use
      the same sort of lockless gettimeofday as ppc64 has been using for
      some time.  This involves getting the timebase and performing some
      simple arithmetic to convert it to seconds and microseconds.  However,
      the factor and offset used there weren't being updated when NTP
      varied the tick length using adjtimex.  64-bit didn't notice the
      problem because it had a hook in the 32-bit adjtimex compat routine
      that attempted to work out what the generic timekeeping code would
      do and alter the factor and offset to match.  However, that code
      was very complex and it wasn't clear that it still matched what the
      generic code would do.
      
      Now we use the generic current_tick_length() routine that was recently
      added to check that the current tick will be as long as we expect; if
      not we recompute the factor and offset.  This keeps gettimeofday and
      xtime in sync.  In addition we check that gettimeofday hasn't got ahead
      of xtime on each timer interrupt; if it has, we resync.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      092b8f34
  3. 18 2月, 2006 17 次提交
  4. 17 2月, 2006 4 次提交
  5. 16 2月, 2006 8 次提交
    • R
      [ARM] Fix SMP initialisation oops · 7bbb7940
      Russell King 提交于
      A change to the SMP initialisation caused the following oops:
      
       CPU1: Booted secondary processor
       CPU1: D VIPT write-back cache
       CPU1: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
       CPU1: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
       <7>Calibrating delay loop... 83.14 BogoMIPS (lpj=415744)
       <1>Unable to handle kernel NULL pointer dereference at virtual address 0000001c
       ...
       PC is at enqueue_task+0x1c/0x64
       LR is at activate_task+0xcc/0xe4
      
      SMP initialisation now requires cpu_possible_map to be initialised in
      setup_arch().  Move this from smp_prepare_cpus() to smp_init_cpus()
      and call it from our setup_arch() if CONFIG_SMP is enabled.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7bbb7940
    • D
      [PATCH] x86_64: early initialization of cpu_to_node · d1db4ec8
      Daniel Yeisley 提交于
      The early initialization of cpu_to_node code as it is now only updates the
      cpu_to_node array, and does not update cpu_pda()->nodemember.  This will
      cause numa_node_id() to return 0 on systems where CPU 0 is not on Node 0.
      This leads to a kernel panic in slab.c.
      
      I've tested the patch below on a 16 processor x86_64 ES7000-600 server, and
      no longer see the panic I saw with the original 2.6.16-rc3.
      Signed-off-by: NDan Yeisley <dan.yeisley@unisys.com>
      Acked-by: NAndi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d1db4ec8
    • H
      [IA64] support panic_on_oops sysctl · b05de01a
      Horms 提交于
      Trivial port of this feature from i386
      As it stands, panic_on_oops but does nothing on ia64
      Signed-Off-By: NHorms <horms@verge.net.au>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      b05de01a
    • H
      [IA64] ia64: simplify and fix udelay() · defbb2c9
      hawkes@sgi.com 提交于
      The original ia64 udelay() was simple, but flawed for platforms without
      synchronized ITCs:  a preemption and migration to another CPU during the
      while-loop likely resulted in too-early termination or very, very
      lengthy looping.
      
      The first fix (now in 2.6.15) broke the delay loop into smaller,
      non-preemptible chunks, reenabling preemption between the chunks.  This
      fix is flawed in that the total udelay is computed to be the sum of just
      the non-premptible while-loop pieces, i.e., not counting the time spent
      in the interim preemptible periods.  If an interrupt or a migration
      occurs during one of these interim periods, then that time is invisible
      and only serves to lengthen the effective udelay().
      
      This new fix backs out the current flawed fix and returns to a simple
      udelay(), fully preemptible and interruptible.  It implements two simple
      alternative udelay() routines:  one a default generic version that uses
      ia64_get_itc(), and the other an sn-specific version that uses that
      platform's RTC.
      Signed-off-by: NJohn Hawkes <hawkes@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      defbb2c9
    • D
      [IA64-SGI] enforce proper ordering of callouts by XPC · 4c2cd966
      Dean Nelson 提交于
      Fix XPC so that it does not deliver any messages until the connected
      callout has returned, as well as, prevent the disconnected callout to
      occur before the disconnecting callout has returned.
      Signed-off-by: NDean Nelson <dcn@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      4c2cd966
    • D
      [IA64-SGI] fix the size of __sn_cnodeid_to_nasid · c2a4969b
      Dean Roe 提交于
      The __sn_cnodeid_to_nasid array was incorrectly sized at MAX_NUMNODES.
      On a large system, this array could overflow.  The following patch
      corrects this by defining it to MAX_COMPACT_NODES.
      Signed-off-by: NDean Roe <roe@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      c2a4969b
    • M
      [IA64-SGI] export sn_pcidev_info_get · 9c65cb9b
      Mark Maule 提交于
      Export sn_pcidev_info_get.
      
      Signed-off-by Mark Maule <maule@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      9c65cb9b
    • J
      [IA64-SGI] remove compile time warning · 26d10915
      Jes Sorensen 提交于
      This one falls into the "present for Andrew Morton" category to address
      his wishlist for a compiler warning free build ;-)
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      26d10915