1. 05 Aug, 2010 1 commit
    • Eric W. Biederman's avatar
      x86, apic: Map the local apic when parsing the MP table. · 5989cd6a
      Eric W. Biederman authored
      This fixes a regression in 2.6.35 from 2.6.34, that is
      present for select models of Intel cpus when people are
      using an MP table.
      
      The commit cf7500c0
      "x86, ioapic: In mpparse use mp_register_ioapic" started
      calling mp_register_ioapic from MP_ioapic_info.  An extremely
      simple change that was obviously correct.  Unfortunately
      mp_register_ioapic did just a little more than the previous
      hand crafted code and so we gained this call path.
      
      The problem call path is:
      MP_ioapic_info()
        mp_register_ioapic()
         io_apic_unique_id()
           io_apic_get_unique_id()
             get_physical_broadcast()
               modern_apic()
                 lapic_get_version()
                   apic_read(APIC_LVR)
      
      Which turned out to be a problem because the local apic
      was not mapped, at that point, unlike the similar point
      in the ACPI parsing code.
      
      This problem is fixed by mapping the local apic when
      parsing the mptable as soon as we reasonably can.
      
      Looking at the number of places we setup the fixmap for
      the local apic, I see some serious simplification opportunities.
      For the moment except for not duplicating the setting up of the
      fixmap in init_apic_mappings, I have not acted on them.
      
      The regression from 2.6.34 is tracked in bug
      https://bugzilla.kernel.org/show_bug.cgi?id=16173
      
      Cc: <stable@kernel.org> 2.6.35
      Reported-by: default avatarDavid Hill <hilld@binarystorm.net>
      Reported-by: default avatarTvrtko Ursulin <tvrtko.ursulin@sophos.com>
      Tested-by: default avatarTvrtko Ursulin <tvrtko.ursulin@sophos.com>
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      LKML-Reference: <m1eiee86jg.fsf_-_@fess.ebiederm.org>
      Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      5989cd6a
  2. 28 Jul, 2010 1 commit
    • H. Peter Anvin's avatar
      x86: Add memory modify constraints to xchg() and cmpxchg() · 113fc5a6
      H. Peter Anvin authored
      xchg() and cmpxchg() modify their memory operands, not merely read
      them.  For some versions of gcc the "memory" clobber has apparently
      dealt with the situation, but not for all.
      Originally-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Cc: Glauber Costa <glommer@redhat.com>
      Cc: Avi Kivity <avi@redhat.com>
      Cc: Peter Palfrader <peter@palfrader.org>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Zachary Amsden <zamsden@redhat.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: <stable@kernel.org>
      LKML-Reference: <4C4F7277.8050306@zytor.com>
      113fc5a6
  3. 27 Jul, 2010 10 commits
  4. 26 Jul, 2010 28 commits