1. 26 1月, 2012 1 次提交
  2. 21 9月, 2011 1 次提交
    • J
      x86: uv2: Workaround for UV2 Hub bug (system global address format) · 6a469e46
      Jack Steiner 提交于
      This is a workaround for a UV2 hub bug that affects the format of system
      global addresses.
      
      The GRU API for UV2 was inadvertently broken by a hardware change.  The
      format of the physical address used for TLB dropins and for addresses used
      with instructions running in unmapped mode has changed.  This change was
      not documented and became apparent only when diags failed running on
      system simulators.
      
      For UV1, TLB and GRU instruction physical addresses are identical to
      socket physical addresses (although high NASID bits must be OR'ed into the
      address).
      
      For UV2, socket physical addresses need to be converted.  The NODE portion
      of the physical address needs to be shifted so that the low bit is in bit
      39 or bit 40, depending on an MMR value.
      
      It is not yet clear if this bug will be fixed in a silicon respin.  If it
      is fixed, the hub revision will be incremented & the workaround disabled.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      6a469e46
  3. 25 5月, 2011 1 次提交
  4. 10 5月, 2011 1 次提交
    • J
      x86, UV: Fix NMI handler for UV platforms · 1d44e828
      Jack Steiner 提交于
      This fixes problems seen on UV systems handling NMIs from the
      node controller.
      
      I isolated the "dazed..." messages that I saw earlier to a bug in
      the BMC on our platform. It was sending NMIs w/o properly setting
      a register that indicated the source of NMI.
      
      So rather than _assuming_ any unhandled NMI came from the UV system
      maintenance console (SMC), add a check to verify that the SMC actually
      sent the NMI.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Cc: gorcunov@gmail.com
      Cc: dzickus@redhat.com
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1d44e828
  5. 18 11月, 2010 1 次提交
    • D
      x86: UV: Address interrupt/IO port operation conflict · 8191c9f6
      Dimitri Sivanich 提交于
      This patch for SGI UV systems addresses a problem whereby
      interrupt transactions being looped back from a local IOH,
      through the hub to a local CPU can (erroneously) conflict with
      IO port operations and other transactions.
      
      To workaound this we set a high bit in the APIC IDs used for
      interrupts. This bit appears to be ignored by the sockets, but
      it avoids the conflict in the hub.
      Signed-off-by: NDimitri Sivanich <sivanich@sgi.com>
      LKML-Reference: <20101116222352.GA8155@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ___
      
       arch/x86/include/asm/uv/uv_hub.h   |    4 ++++
       arch/x86/include/asm/uv/uv_mmrs.h  |   19 ++++++++++++++++++-
       arch/x86/kernel/apic/x2apic_uv_x.c |   25 +++++++++++++++++++++++--
       arch/x86/platform/uv/tlb_uv.c      |    2 +-
       arch/x86/platform/uv/uv_time.c     |    4 +++-
       5 files changed, 49 insertions(+), 5 deletions(-)
      8191c9f6
  6. 27 10月, 2010 1 次提交
  7. 17 4月, 2010 1 次提交
    • R
      x86, UV: uv_irq.c: Fix all sparse warnings · a289cc7c
      Randy Dunlap 提交于
      Fix all sparse warnings in building uv_irq.c.
      
       arch/x86/kernel/uv_irq.c:46:17: warning: symbol 'uv_irq_chip' was not declared. Should it be static?
       arch/x86/kernel/uv_irq.c:143:50: error: no identifier for function argument
       arch/x86/kernel/uv_irq.c:162:13: error: typename in expression
       arch/x86/kernel/uv_irq.c:162:13: error: undefined identifier 'restrict'
       arch/x86/kernel/uv_irq.c:250:44: error: no identifier for function argument
       arch/x86/kernel/uv_irq.c:260:17: error: typename in expression
       arch/x86/kernel/uv_irq.c:260:17: error: undefined identifier 'restrict'
       arch/x86/kernel/uv_irq.c:233:50: warning: incorrect type in argument 3 (different signedness)
       arch/x86/kernel/uv_irq.c:233:50:    expected int *pnode
       arch/x86/kernel/uv_irq.c:233:50:    got unsigned int *<noident>
       arch/x86/include/asm/uv/uv_hub.h:318:44: warning: incorrect type in argument 2 (different address spaces)
       arch/x86/include/asm/uv/uv_hub.h:318:44:    expected void volatile [noderef] <asn:2>*addr
       arch/x86/include/asm/uv/uv_hub.h:318:44:    got unsigned long *
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Dimitri Sivanich <sivanich@sgi.com>
      Cc: Russ Anderson <rja@sgi.com>
      Cc: Robin Holt <holt@sgi.com>
      Cc: Mike Travis <travis@sgi.com>
      Cc: Cliff Wickman <cpw@sgi.com>
      Cc: Jack Steiner <steiner@sgi.com>
      LKML-Reference: <20100416175142.f4b59683.randy.dunlap@oracle.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a289cc7c
  8. 16 1月, 2010 1 次提交
  9. 08 1月, 2010 1 次提交
  10. 31 12月, 2009 1 次提交
  11. 29 12月, 2009 1 次提交
    • M
      x86: SGI UV: Fix writes to led registers on remote uv hubs · 39d30770
      Mike Travis 提交于
      The wrong address was being used to write the SCIR led regs on
      remote hubs.  Also, there was an inconsistency between how BIOS
      and the kernel indexed these regs.  Standardize on using the
      lower 6 bits of the APIC ID as the index.
      
      This patch fixes the problem of writing to an errant address to
      a cpu # >= 64.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Reviewed-by: NJack Steiner <steiner@sgi.com>
      Cc: Robin Holt <holt@sgi.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: stable@kernel.org
      LKML-Reference: <4B3922F9.3060905@sgi.com>
      [ v2: fix a number of annoying checkpatch artifacts and whitespace noise ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      39d30770
  12. 16 12月, 2009 3 次提交
  13. 21 10月, 2009 1 次提交
  14. 16 10月, 2009 1 次提交
  15. 18 9月, 2009 2 次提交
  16. 04 8月, 2009 2 次提交
  17. 09 6月, 2009 1 次提交
    • J
      x86, UV: Fix macros for multiple coherency domains · c4ed3f04
      Jack Steiner 提交于
      Fix bug in the SGI UV macros that support systems with multiple
      coherency domains.  The macros used for referencing global MMR
      (chipset registers) are failing to correctly "or" the NASID
      (node identifier) bits that reside above M+N. These high bits
      are supplied automatically by the chipset for memory accesses
      coming from the processor socket.
      
      However, the bits must be present for references to the special
      global MMR space used to map chipset registers. (See uv_hub.h
      for more details ...)
      
      The bug results in references to invalid/incorrect nodes.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Cc: <stable@kernel.org>
      LKML-Reference: <20090608154405.GA16395@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c4ed3f04
  18. 03 4月, 2009 2 次提交
  19. 05 3月, 2009 1 次提交
  20. 17 12月, 2008 1 次提交
    • J
      x86: UV fix for global physical addresses · 189f67c4
      Jack Steiner 提交于
      Impact: fix UV boot crash
      
      This fixes a UV bug related to generating global memory addresses
      on partitioned systems. Partition systems do not have physical memory
      at address 0. Instead, a chunk of high memory is remapped by the chipset
      so that it appears to be at address 0. This remapping is INVISIBLE to most
      of the OS. The only OS functions that need to be aware of the remaping are
      functions that directly interface to the chipset. The GRU is one example.
      
      Also, delete a couple of unused macros related to global memory addresses.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      189f67c4
  21. 31 10月, 2008 1 次提交
  22. 28 10月, 2008 1 次提交
  23. 27 10月, 2008 1 次提交
    • M
      x86/uv: provide a System Activity Indicator driver · 7f1baa06
      Mike Travis 提交于
      Impact: start per CPU heartbeat LED timers on SGI UV systems
      
      The SGI UV system has no LEDS but uses one of the system controller
      regs to indicate the online internal state of the cpu.  There is a
      heartbeat bit indicating that the cpu is responding to interrupts,
      and an idle bit indicating whether the cpu is idle when the heartbeat
      interrupt occurs.  The current period is one second.
      
      When a cpu panics, an error code is written by BIOS to this same reg.
      
      This patchset provides the following:
      
        * x86_64: Add base functionality for writing to the specific SCIR's
          for each cpu.
      
        * heartbeat: Invert "heartbeat" bit to indicate the cpu is
          "interruptible".  If the current thread is the idle thread,
          then indicate system is "idle".
      
        * if hotplug enabled, all bits are set (0xff) when the cpu is disabled.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7f1baa06
  24. 23 10月, 2008 3 次提交
  25. 23 7月, 2008 1 次提交
    • V
      x86: consolidate header guards · 77ef50a5
      Vegard Nossum 提交于
      This patch is the result of an automatic script that consolidates the
      format of all the headers in include/asm-x86/.
      
      The format:
      
      1. No leading underscore. Names with leading underscores are reserved.
      2. Pathname components are separated by two underscores. So we can
         distinguish between mm_types.h and mm/types.h.
      3. Everything except letters and numbers are turned into single
         underscores.
      Signed-off-by: NVegard Nossum <vegard.nossum@gmail.com>
      77ef50a5
  26. 09 7月, 2008 1 次提交
  27. 02 6月, 2008 1 次提交
  28. 17 4月, 2008 2 次提交