1. 27 2月, 2010 2 次提交
  2. 14 1月, 2010 2 次提交
  3. 29 10月, 2009 3 次提交
    • H
      [S390] smp: fix sigp sense handling · b3dcf3de
      Heiko Carstens 提交于
      sigp sense only returns the status of a cpu if it is non zero. If the
      status of the sensed cpu is all zeros condition code 0 (accpeted) is
      set and no status bits are returned.
      The current code however assumes that a status was returned and tests
      bits in it. This means uninitalized data is accessed with random
      results.
      Worst case is that the code that checks if cpu is offline on cpu
      hotplug assumes that the target cpu is offline while it is still
      running. This leads potentially to memory corruption since resources
      that are still needed by the target cpu will be freed and could be
      resused while still in use.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b3dcf3de
    • H
      [S390] smp: fix sigp stop handling · f8501ba7
      Heiko Carstens 提交于
      According to the architecture a cpu must not necessarily enter stopped
      state after completion of a sigp instruction with "stop" order code.
      So remove the BUG() statement after self sending sigp stop to avoid
      that it ever gets reached.
      Also add a sigp busy check to make sure that the order gets delivered.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f8501ba7
    • H
      [S390] smp: fix prefix handling of offlined cpus · 4f8048ee
      Heiko Carstens 提交于
      Offlined cpus still have valid prefix register contents. Dumpers
      will store the register contents of a cpu to the location where its
      prefix register points to.
      For offlined cpus the area (lowcore) has been freed and the dumper
      would write the uninteresting contents of the offline cpu to a memory
      location which might be in use by some other component and destroy
      valueable information.
      To fix this set the prefix register of offline cpus to absolute
      address zero again. This prevents the current dumpers to write to
      random memory locations.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      4f8048ee
  4. 24 9月, 2009 1 次提交
  5. 23 9月, 2009 2 次提交
  6. 11 9月, 2009 2 次提交
  7. 24 7月, 2009 1 次提交
    • H
      [S390] vdso: fix per cpu area allocation · 3a6ba460
      Heiko Carstens 提交于
      vdso per cpu area allocation in smp_prepare_cpus() happens with GFP_KERNEL
      but irqs disabled. Triggers this one:
      
      Badness at kernel/lockdep.c:2280
      Modules linked in:
      CPU: 0 Not tainted 2.6.30 #2
      Process swapper (pid: 1, task: 000000003fe88000, ksp: 000000003fe87eb8)
      Krnl PSW : 0400c00180000000 0000000000083360 (lockdep_trace_alloc+0xec/0xf8)
      [...]
      Call Trace:
      ([<00000000000832b6>] lockdep_trace_alloc+0x42/0xf8)
       [<00000000000b1880>] __alloc_pages_internal+0x3e8/0x5c4
       [<00000000000b1b4a>] __get_free_pages+0x3a/0xb0
       [<0000000000026546>] vdso_alloc_per_cpu+0x6a/0x18c
       [<00000000005eff82>] smp_prepare_cpus+0x322/0x594
       [<00000000005e8232>] kernel_init+0x76/0x398
       [<000000000001bb1e>] kernel_thread_starter+0x6/0xc
       [<000000000001bb18>] kernel_thread_starter+0x0/0xc
      
      Fix this by moving the allocation out of the irqs disabled section.
      Reported-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      3a6ba460
  8. 22 6月, 2009 1 次提交
  9. 16 6月, 2009 1 次提交
  10. 12 6月, 2009 2 次提交
  11. 14 4月, 2009 2 次提交
  12. 26 3月, 2009 9 次提交
  13. 09 1月, 2009 1 次提交
  14. 31 12月, 2008 2 次提交
  15. 25 12月, 2008 4 次提交
  16. 13 12月, 2008 1 次提交
    • R
      cpumask: centralize cpu_online_map and cpu_possible_map · 98a79d6a
      Rusty Russell 提交于
      Impact: cleanup
      
      Each SMP arch defines these themselves.  Move them to a central
      location.
      
      Twists:
      1) Some archs (m32, parisc, s390) set possible_map to all 1, so we add a
         CONFIG_INIT_ALL_POSSIBLE for this rather than break them.
      
      2) mips and sparc32 '#define cpu_possible_map phys_cpu_present_map'.
         Those archs simply have phys_cpu_present_map replaced everywhere.
      
      3) Alpha defined cpu_possible_map to cpu_present_map; this is tricky
         so I just manipulate them both in sync.
      
      4) IA64, cris and m32r have gratuitous 'extern cpumask_t cpu_possible_map'
         declarations.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Reviewed-by: NGrant Grundler <grundler@parisc-linux.org>
      Tested-by: NTony Luck <tony.luck@intel.com>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: Mike Travis <travis@sgi.com>
      Cc: ink@jurassic.park.msu.ru
      Cc: rmk@arm.linux.org.uk
      Cc: starvik@axis.com
      Cc: tony.luck@intel.com
      Cc: takata@linux-m32r.org
      Cc: ralf@linux-mips.org
      Cc: grundler@parisc-linux.org
      Cc: paulus@samba.org
      Cc: schwidefsky@de.ibm.com
      Cc: lethal@linux-sh.org
      Cc: wli@holomorphy.com
      Cc: davem@davemloft.net
      Cc: jdike@addtoit.com
      Cc: mingo@redhat.com
      98a79d6a
  17. 28 10月, 2008 1 次提交
    • H
      [S390] Fix sysdev class file creation. · da5aae70
      Heiko Carstens 提交于
      Use sysdev_class_create_file() to create create sysdev class attributes
      instead of sysfs_create_file(). Using sysfs_create_file() wasn't a very
      good idea since the show and store functions have a different amount of
      parameters for sysfs files and sysdev class files.
      In particular the pointer to the buffer is the last argument and
      therefore accesses to random memory regions happened.
      Still worked surprisingly well until we got a kernel panic.
      
      Cc: stable@kernel.org
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      da5aae70
  18. 09 9月, 2008 1 次提交
    • M
      kernel/cpu.c: create a CPU_STARTING cpu_chain notifier · e545a614
      Manfred Spraul 提交于
      Right now, there is no notifier that is called on a new cpu, before the new
      cpu begins processing interrupts/softirqs.
      Various kernel function would need that notification, e.g. kvm works around
      by calling smp_call_function_single(), rcu polls cpu_online_map.
      
      The patch adds a CPU_STARTING notification. It also adds a helper function
      that sends the message to all cpu_chain handlers.
      
      Tested on x86-64.
      All other archs are untested. Especially on sparc, I'm not sure if I got
      it right.
      Signed-off-by: NManfred Spraul <manfred@colorfullife.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e545a614
  19. 22 8月, 2008 1 次提交
  20. 22 7月, 2008 1 次提交
    • A
      sysdev: Pass the attribute to the low level sysdev show/store function · 4a0b2b4d
      Andi Kleen 提交于
      This allow to dynamically generate attributes and share show/store
      functions between attributes. Right now most attributes are generated
      by special macros and lots of duplicated code. With the attribute
      passed it's instead possible to attach some data to the attribute
      and then use that in shared low level functions to do different things.
      
      I need this for the dynamically generated bank attributes in the x86
      machine check code, but it'll allow some further cleanups.
      
      I converted all users in tree to the new show/store prototype. It's a single
      huge patch to avoid unbisectable sections.
      
      Runtime tested: x86-32, x86-64
      Compiled only: ia64, powerpc
      Not compile tested/only grep converted: sh, arm, avr32
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4a0b2b4d