1. 10 1月, 2009 1 次提交
    • A
      x86: only scan the root bus in early PCI quirks · 8659c406
      Andi Kleen 提交于
      We found a situation on Linus' machine that the Nvidia timer quirk hit on
      a Intel chipset system.  The problem is that the system has a fancy Nvidia
      card with an own PCI bridge, and the early-quirks code looking for any
      NVidia bridge triggered on it incorrectly.  This didn't lead a boot
      failure by luck, but the timer routing code selecting the wrong timer
      first and some ugly messages.  It might lead to real problems on other
      systems.
      
      I checked all the devices which are currently checked for by early_quirks
      and it turns out they are all located in the root bus zero.
      
      So change the early-quirks loop to only scan bus 0.  This incidently also
      saves quite some unnecessary scanning work, because early_quirks doesn't
      go through all the non root busses.
      
      The graphics card is not on bus 0, so it is not matched anymore.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8659c406
  2. 28 11月, 2008 1 次提交
  3. 16 11月, 2008 1 次提交
  4. 22 10月, 2008 1 次提交
  5. 17 10月, 2008 1 次提交
  6. 07 10月, 2008 1 次提交
  7. 06 9月, 2008 1 次提交
  8. 11 7月, 2008 1 次提交
  9. 08 7月, 2008 2 次提交
  10. 17 6月, 2008 1 次提交
  11. 30 1月, 2008 3 次提交
    • S
      x86: fix section mismatch warning in early-quirks.c · 85b74d6c
      Sam Ravnborg 提交于
      Fix following warnings:
      WARNING: arch/x86/kernel/built-in.o(.text+0x139e1): Section mismatch: reference to .init.data:early_qrk in 'check_dev_quirk'
      WARNING: arch/x86/kernel/built-in.o(.text+0x139f5): Section mismatch: reference to .init.data:early_qrk in 'check_dev_quirk'
      WARNING: arch/x86/kernel/built-in.o(.text+0x13a0c): Section mismatch: reference to .init.data:early_qrk in 'check_dev_quirk'
      WARNING: arch/x86/kernel/built-in.o(.text+0x13a12): Section mismatch: reference to .init.data:early_qrk in 'check_dev_quirk'
      WARNING: arch/x86/kernel/built-in.o(.text+0x13a1a): Section mismatch: reference to .init.data:early_qrk in 'check_dev_quirk'
      WARNING: arch/x86/kernel/built-in.o(.text+0x13a36): Section mismatch: reference to .init.data:early_qrk in 'check_dev_quirk'
      WARNING: arch/x86/kernel/built-in.o(.text+0x13a42): Section mismatch: reference to .init.data:
      
      Warning was caused by access to the __initdata annotated variable
      from the non-annotated static function check_dev_quirk().
      check_dev_quirk() were only used from a function annotated
      __init so add __init annotation to check_dev_quirk() to fix it.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      85b74d6c
    • N
      x86: clean up arch/x86/kernel/early-quirks.c · 7bcbc78d
      Neil Horman 提交于
      clean up checkpatch errors. No code changed.
      
            text    data     bss     dec     hex filename
             705     120       0     825     339 early-quirks.o.before
             705     120       0     825     339 early-quirks.o.after
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      7bcbc78d
    • N
      x86, kexec: force x86 arches to boot kdump kernels on boot cpu · c6b48324
      Neil Horman 提交于
      Recently a kdump bug was discovered in which a system would hang inside
      calibrate_delay during the booting of the kdump kernel.  This was caused
      by the fact that the jiffies counter was not being incremented during
      timer calibration.  The root cause of this problem was found to be a
      bios misconfiguration of the hypertransport bus.  On system affected by
      this hang, the bios had assigned APIC ids which used extended apic bits
      (more than the nominal 4 bit ids's), but failed to configure bit 17 of
      the hypertransport transaction config register, which indicated that the
      mask for the destination field of interrupt packets accross the ht bus
      (see section 3.3.9 of
      http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF).
      If a crash occurs on a cpu with an APIC id that extends beyond 4 bits,
      it will not recieve interrupts during the kdump kernel boot, and this
      hang will be the result.  The fix is to add this patch, whcih add an
      early pci quirk check, to forcibly enable this bit in the httcfg
      register.  This enables all cpus on a system to receive interrupts, and
      allows kdump kernel bootup to procede normally.
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      c6b48324
  12. 30 10月, 2007 3 次提交
  13. 28 10月, 2007 1 次提交
  14. 20 10月, 2007 1 次提交
  15. 11 10月, 2007 2 次提交
  16. 22 7月, 2007 1 次提交
  17. 03 5月, 2007 1 次提交
  18. 09 4月, 2007 1 次提交
    • A
      [PATCH] x86_64 early quirks: fix early_qrk[] section tag · c993c735
      Andrew Morton 提交于
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:nvidia_bugs from .data between 'early_qrk' (at offset 0x8428) and 'enable_cpu_hotplug'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:via_bugs from .data between 'early_qrk' (at offset 0x8438) and 'enable_cpu_hotplug'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:ati_bugs from .data between 'early_qrk' (at offset 0x8448) and 'enable_cpu_hotplug'
      
      The compiler is putting it into .data because the __initdata is in the wrong
      place.
      
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c993c735
  19. 17 3月, 2007 1 次提交
    • S
      [PATCH] x86-64: fix section mismatch warnings · 43999d9e
      Sam Ravnborg 提交于
      Fix the following section mismatch warnings on x86_64:
      (build using defconfig)
      
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:mtrr_bp_init from .text between 'identify_cpu' (at offset 0x65eb) and 'IRQ0x20_interrupt'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data: from .text between 'finish_e820_parsing' (at offset 0x7dc2) and 'early_panic'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:e820_print_map from .text between 'finish_e820_parsing' (at offset 0x7de1) and 'early_panic'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:num_processors from .text between 'acpi_unmap_lsapic' (at offset 0xc88f) and 'acpi_register_ioapic'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:disabled_cpus from .text between 'MP_processor_info' (at offset 0x11f35) and 'mp_register_lapic'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:num_processors from .text between 'MP_processor_info' (at offset 0x11f6e) and 'mp_register_lapic'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:num_processors from .text between 'MP_processor_info' (at offset 0x11f93) and 'mp_register_lapic'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:fix_aperture from .text between 'gart_parse_options' (at offset 0x15517) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:fix_aperture from .text between 'gart_parse_options' (at offset 0x1552c) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:iommu_aperture_allowed from .text between 'gart_parse_options' (at offset 0x1553d) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:iommu_aperture_allowed from .text between 'gart_parse_options' (at offset 0x15552) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:iommu_aperture_allowed from .text between 'gart_parse_options' (at offset 0x15561) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:iommu_aperture_allowed from .text between 'gart_parse_options' (at offset 0x15577) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:fallback_aper_force from .text between 'gart_parse_options' (at offset 0x1558a) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:fallback_aper_order from .text between 'gart_parse_options' (at offset 0x155bf) and 'iommu_full'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:timer_over_8254 from .text between 'ati_bugs' (at offset 0x16344) and 'via_bugs'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:timer_over_8254 from .text between 'ati_bugs' (at offset 0x16356) and 'via_bugs'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:iommu_aperture_allowed from .text between 'via_bugs' (at offset 0x16380) and 'nvidia_bugs'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:iommu_aperture_disabled from .text between 'via_bugs' (at offset 0x16397) and 'nvidia_bugs'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:acpi_use_timer_override from .text between 'nvidia_bugs' (at offset 0x163a7) and 'arch_unregister_cpu'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:nvidia_hpet_check from .text between 'nvidia_bugs' (at offset 0x163b1) and 'arch_unregister_cpu'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data: from .text between 'nvidia_bugs' (at offset 0x163be) and 'arch_unregister_cpu'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data: from .text between 'nvidia_bugs' (at offset 0x163d1) and 'arch_unregister_cpu'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.data:acpi_skip_timer_override from .text between 'nvidia_bugs' (at offset 0x163e1) and 'arch_unregister_cpu'
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:quirk_intel_irqbalance from .text between 'intel_bugs' (at offset 0x1633c) and 'ati_bugs'
      
      But adds:
      WARNING: arch/x86_64/kernel/built-in.o - Section mismatch: reference to .init.text:get_mtrr_state from .text between 'mtrr_bp_init' (at offset 0xb887) and 'ipi_handler'
      
      The warnings does not show up during a normal build due to kbuild
      failing to check for section mismatch in vmlinux.
      To see these warnings run:
      scripts/mod/modpost arch/x86_64/kernel/built-in.o
      
      kbuild will be fixed but the 'noise-level' had to be decresed first.
      There remains a few section mismatch warnigns for x86_64 for areas where I did
      not feel confident.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      43999d9e
  20. 09 3月, 2007 2 次提交
  21. 13 2月, 2007 1 次提交
  22. 03 2月, 2007 1 次提交
  23. 09 1月, 2007 1 次提交
  24. 07 12月, 2006 2 次提交
  25. 14 11月, 2006 1 次提交
    • A
      [PATCH] x86: Add acpi_user_timer_override option for Asus boards · fa18f477
      Andi Kleen 提交于
      Timer overrides are normally disabled on Nvidia board because
      they are commonly wrong, except on new ones with HPET support.
      Unfortunately there are quite some Asus boards around that
      don't have HPET, but need a timer override.
      
      We don't know yet how to handle this transparently,
      but at least add a command line option to force the timer override
      and let them boot.
      
      Cc: len.brown@intel.com
      Signed-off-by: NAndi Kleen <ak@suse.de>
      fa18f477
  26. 22 10月, 2006 1 次提交
    • A
      [PATCH] x86-64: Revert timer routing behaviour back to 2.6.16 state · e70ea8c0
      Andi Kleen 提交于
      By default route the 8254 over the 8259 and only disable
      it on ATI boards where this causes double timer interrupts.
      
      This should unbreak some Nvidia boards where the timer doesn't
      seem to tick of it isn't enabled in the 8259. At least one
      VIA board also seemed to have a little trouble with the disabled
      8259.
      
      For 2.6.20 we'll try both dynamically without black listing, but I think
      for .19 this is the safer approach because it has been already well tested
      in earlier kernels. This also makes the x86-64 behaviour the same
      as i386.
      
      Command line options can change all this of course.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      e70ea8c0
  27. 26 9月, 2006 2 次提交
    • A
      [PATCH] x86: Allow disabling early pci scans with pci=noearly or disallowing conf1 · 0637a70a
      Andi Kleen 提交于
      Some buggy systems can machine check when config space accesses
      happen for some non existent devices.  i386/x86-64 do some early
      device scans that might trigger this. Allow pci=noearly to disable
      this. Also when type 1 is disabling also don't do any early
      accesses which are always type1.
      
      This moves the pci= configuration parsing to be a early parameter.
      I don't think this can break anything because it only changes
      a single global that is only used by PCI.
      
      Cc: gregkh@suse.de
      Cc: Trammell Hudson <hudson@osresearch.net>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      0637a70a
    • A
      [PATCH] Move early chipset quirks out to new file · dfa4698c
      Andi Kleen 提交于
      They did not really belong into io_apic.c. Move them into a new file
      and clean it up a bit.
      
      Also remove outdated ATI quirk that was obsolete,
      Signed-off-by: NAndi Kleen <ak@suse.de>
      dfa4698c