1. 14 2月, 2009 1 次提交
    • T
      intel-iommu: fix endless "Unknown DMAR structure type" loop · 084eb960
      Tony Battersby 提交于
      I have a SuperMicro C2SBX motherboard with BIOS revision 1.0b.  With vt-d
      enabled in the BIOS, Linux gets into an endless loop printing
      "DMAR:Unknown DMAR structure type" when booting.  Here is the DMAR ACPI
      table:
      
      DMAR @ 0x7fe86dec
        0000: 44 4d 41 52 98 00 00 00 01 6f 49 6e 74 65 6c 20  DMAR.....oIntel
        0010: 4f 45 4d 44 4d 41 52 20 00 00 04 06 4c 4f 48 52  OEMDMAR ....LOHR
        0020: 01 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00  ....#...........
        0030: 01 00 58 00 00 00 00 00 00 a0 e8 7f 00 00 00 00  ..X.............
        0040: ff ff ef 7f 00 00 00 00 01 08 00 00 00 00 1d 00  ................
        0050: 01 08 00 00 00 00 1d 01 01 08 00 00 00 00 1d 02  ................
        0060: 01 08 00 00 00 00 1d 07 01 08 00 00 00 00 1a 00  ................
        0070: 01 08 00 00 00 00 1a 01 01 08 00 00 00 00 1a 02  ................
        0080: 01 08 00 00 00 00 1a 07 01 08 00 00 00 00 1a 07  ................
        0090: c0 00 68 00 04 10 66 60                          ..h...f`
      
      Here are the messages printed by the kernel:
      
      DMAR:Host address width 36
      DMAR:RMRR base: 0x000000007fe8a000 end: 0x000000007fefffff
      DMAR:Unknown DMAR structure type
      DMAR:Unknown DMAR structure type
      DMAR:Unknown DMAR structure type
      ...
      
      Although I not very familiar with ACPI, to me it looks like struct
      acpi_dmar_header::length == 0x0058 is incorrect, causing
      parse_dmar_table() to look at an invalid offset on the next loop.  This
      offset happens to have struct acpi_dmar_header::length == 0x0000, which
      prevents the loop from ever terminating.  This patch checks for this
      condition and bails out instead of looping forever.
      Signed-off-by: NTony Battersby <tonyb@cybernetics.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      084eb960
  2. 09 2月, 2009 12 次提交
  3. 08 2月, 2009 3 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · e83102ca
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI PM: make the PM core more careful with drivers using the new PM framework
        PCI PM: Read power state from device after trying to change it on resume
        PCI PM: Do not disable and enable bridges during suspend-resume
        PCI: PCIe portdrv: Simplify suspend and resume
        PCI PM: Fix saving of device state in pci_legacy_suspend
        PCI PM: Check if the state has been saved before trying to restore it
        PCI PM: Fix handling of devices without drivers
        PCI: return error on failure to read PCI ROMs
        PCI: properly clean up ASPM link state on device remove
      e83102ca
    • R
      module: remove over-zealous check in __module_get() · 7f9a50a5
      Rusty Russell 提交于
      Impact: fix spurious BUG_ON() triggered under load
      
      module_refcount() isn't reliable outside stop_machine(), as demonstrated
      by Karsten Keil <kkeil@suse.de>, networking can trigger it under load
      (an inc on one cpu and dec on another while module_refcount() is tallying
       can give false results, for example).
      
      Almost noone should be using __module_get, but that's another issue.
      
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7f9a50a5
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · f12b12a8
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (30 commits)
        ACPI: Kconfig text - Fix the ACPI_CONTAINER module name according to the real module name.
        eeepc-laptop: fix oops when changing backlight brightness during eeepc-laptop init
        ACPICA: Fix table entry truncation calculation
        ACPI: Enable bit 11 in _PDC to advertise hw coord
        ACPI: struct device - replace bus_id with dev_name(), dev_set_name()
        ACPI: add missing KERN_* constants to printks
        ACPI: dock: Don't eval _STA on every show_docked sysfs read
        ACPI: disable ACPI cleanly when bad RSDP found
        ACPI: delete CPU_IDLE=n code
        ACPI: cpufreq: Remove deprecated /proc/acpi/processor/../performance proc entries
        ACPI: make some IO ports off-limits to AML
        ACPICA: add debug dump of BIOS _OSI strings
        ACPI: proc_dir_entry 'video/VGA' already registered
        ACPI: Skip the first two elements in the _BCL package
        ACPI: remove BM_RLD access from idle entry path
        ACPI: remove locking from PM1x_STS register reads
        eeepc-laptop: use netlink interface
        eeepc-laptop: Implement rfkill hotplugging in eeepc-laptop
        eeepc-laptop: Check return values from rfkill_register
        eeepc-laptop: Add support for extended hotkeys
        ...
      f12b12a8
  4. 07 2月, 2009 24 次提交