Skip to content
  1. Jan 31, 2009
    • Jeremy Fitzhardinge's avatar
      xen: setup percpu data pointers · 795f99b6
      Jeremy Fitzhardinge authored
      
      
      Impact: fix xen booting
      
      We need to access percpu data fairly early, so set up the percpu
      registers as soon as possible.  We only need to load the appropriate
      segment register.  We already have a GDT, but its hard to change it
      early because we need to manipulate the pagetable to do so, and that
      hasn't been set up yet.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      795f99b6
    • Jeremy Fitzhardinge's avatar
      x86: split loading percpu segments from loading gdt · 11e3a840
      Jeremy Fitzhardinge authored
      
      
      Impact: split out a function, no functional change
      
      Xen needs to be able to access percpu data from very early on.  For
      various reasons, it cannot also load the gdt at that time.   It does,
      however, have a pefectly functional gdt at that point, so there's no
      pressing need to reload the gdt.
      
      Split the function to load the segment registers off, so Xen can call
      it directly.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      11e3a840
    • Brian Gerst's avatar
      x86: pass in cpu number to switch_to_new_gdt() · 552be871
      Brian Gerst authored
      
      
      Impact: cleanup, prepare for xen boot fix.
      
      Xen needs to call this function very early to setup the GDT and
      per-cpu segments.  Remove the call to smp_processor_id() and just
      pass in the cpu number.
      
      Signed-off-by: default avatarBrian Gerst <brgerst@gmail.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      552be871
    • Cliff Wickman's avatar
      x86: UV fix uv_flush_send_and_wait() · 2749ebe3
      Cliff Wickman authored
      
      
      Impact: fix possible tlb mis-flushing on UV
      
      uv_flush_send_and_wait() should return a pointer if the broadcast
      remote tlb shootdown requests fail. That causes the conventional IPI
      method of shootdown to be used.
      
      Signed-off-by: default avatarCliff Wickman <cpw@sgi.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      2749ebe3
    • Tejun Heo's avatar
      linker script: use separate simpler definition for PERCPU() · 3ac6cffe
      Tejun Heo authored
      
      
      Impact: fix linker screwup on x86_32
      
      Recent x86_64 zerobased patches introduced PERCPU_VADDR() to put
      .data.percpu to a predefined address and re-defined PERCPU() in terms
      of it.  The new macro defined one extra symbol, __per_cpu_load, for
      LMA of the section so that the init data could be accessed.  This new
      symbol introduced the following problems to x86_32.
      
      1. If __per_cpu_load is defined outside of .data.percpu as an absolute
         symbol, relocation generation for relocatable kernel fails due to
         absolute relocation.
      
      2. If __per_cpu_load is put inside .data.percpu with absolute address
         assignment to work around #1, linker gets confused and under
         certain configurations ends up relocating the symbol against
         .data.percpu such that the load address gets added on top of
         already set load address.
      
      As x86_32 doesn't use predefined address for .data.percpu, there's no
      need for it to care about the possibility of __per_cpu_load being
      different from __per_cpu_start.
      
      This patch defines PERCPU() separately so that __per_cpu_load is
      defined inside .data.percpu so that everything is ordinary
      linking-wise.
      
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3ac6cffe
    • Ingo Molnar's avatar
      Merge branch 'linus' into core/percpu · c43e0e46
      Ingo Molnar authored
      Conflicts:
      	kernel/irq/handle.c
      c43e0e46
  2. Jan 30, 2009