1. 13 Oct, 2007 17 commits
  2. 12 Oct, 2007 23 commits
    • Jeff Garzik's avatar
      x86/pci/acpi: fix DMI const-ification fallout · 752097ce
      Jeff Garzik authored
      Fix DMI const-ification fallout that appeared when merging subsystem
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Nick Piggin's avatar
      x86: optimise barriers · b6c7347f
      Nick Piggin authored
      According to latest memory ordering specification documents from Intel
      and AMD, both manufacturers are committed to in-order loads from
      cacheable memory for the x86 architecture.  Hence, smp_rmb() may be a
      simple barrier.
      Also according to those documents, and according to existing practice in
      Linux (eg.  spin_unlock doesn't enforce ordering), stores to cacheable
      memory are visible in program order too.  Special string stores are safe
      -- their constituent stores may be out of order, but they must complete
      in order WRT surrounding stores.  Nontemporal stores to WB memory can go
      out of order, and so they should be fenced explicitly to make them
      appear in-order WRT other stores.  Hence, smp_wmb() may be a simple
      In userspace microbenchmarks on a core2 system, fence instructions range
      anywhere from around 15 cycles to 50, which may not be totally
      insignificant in performance critical paths (code size will go down
      However the primary motivation for this is to have the canonical barrier
      implementation for x86 architecture.
      smp_rmb on buggy pentium pros remains a locked op, which is apparently
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Nick Piggin's avatar
      x86: fix IO write barrier · 4071c718
      Nick Piggin authored
      wmb() on x86 must always include a barrier, because stores can go out of
      order in many cases when dealing with devices (eg. WC memory).
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Nick Piggin's avatar
      x86: fence oostores on 64-bit · df1bdc06
      Nick Piggin authored
      movnt* instructions are not strongly ordered with respect to other stores,
      so if we are to assume stores are strongly ordered in the rest of the 64
      bit code, we must fence these off (see similar examples in 32 bit code).
      [ The AMD memory ordering document seems to say that nontemporal stores can
        also pass earlier regular stores, so maybe we need sfences _before_
        movnt* everywhere too? ]
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Only enable BLOCK_COMPAT if COMPAT is needed · 2b9e0aae
      Linus Torvalds authored
      IOW, it needs to depend on both CONFIG_BLOCK and CONFIG_COMPAT.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · ab9c2322
      Linus Torvalds authored
      * 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (119 commits)
        [libata] struct pci_dev related cleanups
        libata: use ata_exec_internal() for PMP register access
        libata: implement ATA_PFLAG_RESETTING
        libata: add @timeout to ata_exec_internal[_sg]()
        ahci: fix notification handling
        ahci: clean up PORT_IRQ_BAD_PMP enabling
        ahci: kill leftover from enabling NCQ over PMP
        libata: wrap schedule_timeout_uninterruptible() in loop
        libata: skip suppress reporting if ATA_EHI_QUIET
        libata: clear ehi description after initial host report
        pata_jmicron: match vendor and class code only
        libata: add ST9160821AS / 3.ALD to NCQ blacklist
        pata_acpi: ACPI driver support
        libata-core: Expose gtm methods for driver use
        libata: add HDT722516DLA380 to NCQ blacklist
        libata: blacklist NCQ on Seagate Barracuda ST380817AS
        [libata] Turn on ACPI by default
        libata_scsi: Fix ATAPI transfer lengths
        libata: correct handling of SRST reset sequences
        libata: Integrate ACPI-based PATA/SATA hotplug - version 5
    • Andi Kleen's avatar
      Update maintainers file · 8bd0983e
      Andi Kleen authored
      Since there is no x86-64 architecture anymore it cannot be maintained.
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 · 6a84258e
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (37 commits)
        PCI: merge almost all of pci_32.h and pci_64.h together
        PCI: X86: Introduce and enable PCI domain support
        PCI: Add 'nodomains' boot option, and pci_domains_supported global
        PCI: modify PCI bridge control ISA flag for clarity
        PCI: use _CRS for PCI resource allocation
        PCI: avoid P2P prefetch window for expansion ROMs
        PCI: skip ISA ioresource alignment on some systems
        PCI: remove transparent bridge sizing
        pci: write file size to inode on proc bus file write
        pci: use size stored in proc_dir_entry for proc bus files
        pci: implement "pci=noaer"
        PCI: fix IDE legacy mode resources
        MSI: Use correct data offset for 32-bit MSI in read_msi_msg()
        PCI: Fix incorrect argument order to list_add_tail() in PCI dynamic ID code
        PCI: i386: Compaq EVO N800c needs PCI bus renumbering
        PCI: Remove no longer correct documentation regarding MSI vector assignment
        PCI: re-enable onboard sound on "MSI K8T Neo2-FIR"
        PCI: quirk_vt82c586_acpi: Omit reading PCI revision ID
        PCI: quirk amd_8131_mmrbc: Omit reading pci revision ID
        cpqphp: Use PCI_CLASS_REVISION instead of PCI_REVISION_ID for read
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 · efefc6eb
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (75 commits)
        PM: merge device power-management source files
        sysfs: add copyrights
        kobject: update the copyrights
        kset: add some kerneldoc to help describe what these strange things are
        Driver core: rename ktype_edd and ktype_efivar
        Driver core: rename ktype_driver
        Driver core: rename ktype_device
        Driver core: rename ktype_class
        driver core: remove subsystem_init()
        sysfs: move sysfs file poll implementation to sysfs_open_dirent
        sysfs: implement sysfs_open_dirent
        sysfs: move sysfs_dirent->s_children into sysfs_dirent->s_dir
        sysfs: make sysfs_root a regular directory dirent
        sysfs: open code sysfs_attach_dentry()
        sysfs: make s_elem an anonymous union
        sysfs: make bin attr open get active reference of parent too
        sysfs: kill unnecessary NULL pointer check in sysfs_release()
        sysfs: kill unnecessary sysfs_get() in open paths
        sysfs: reposition sysfs_dirent->s_mode.
        sysfs: kill sysfs_update_file()
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 117494a1
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (142 commits)
        USB: fix race in autosuspend reschedule
        atmel_usba_udc: Keep track of the device status
        USB: Nikon D40X unusual_devs entry
        USB: serial core should respect driver requirements
        USB: documentation for USB power management
        USB: skip autosuspended devices during system resume
        USB: mutual exclusion for EHCI init and port resets
        USB: allow usbstorage to have LUNS greater than 2Tb
        USB: Adding support for SHARP WS011SH to ipaq.c
        USB: add atmel_usba_udc driver
        USB: ohci SSB bus glue
        USB: ehci build fixes on au1xxx, ppc-soc
        USB: add runtime frame_no quirk for big-endian OHCI
        USB: funsoft: Fix termios
        USB: visor: termios bits
        USB: unusual_devs entry for Nikon DSC D2Xs
        USB: re-remove <linux/usb_sl811.h>
        USB: move <linux/usb_gadget.h> to <linux/usb/gadget.h>
        USB: Export URB statistics for powertop
        USB: serial gadget: Disable endpoints on unload
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq · 4d5709a7
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
        [CPUFREQ] Don't take semaphore in cpufreq_quick_get()
        [CPUFREQ] Support different families in fid/did to frequency conversion
        [CPUFREQ] cpufreq_stats: misc cpuinit section annotations
        [CPUFREQ] implement !CONFIG_CPU_FREQ stub for  cpufreq_unregister_notifier()
        [CPUFREQ] mark hotplug notifier callback as __cpuinit
        [CPUFREQ] Only check for transition latency on problematic governors (kconfig fix)
        [CPUFREQ] allow ondemand and conservative cpufreq governors to be used as default
        [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core
        [CPUFREQ] Longhaul - Add support for PM133 northbridge
        [CPUFREQ] x86: use num_online_nodes to get physical cpus numbers for
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86 · 57c5b999
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86: (40 commits)
        x86: HPET add another ICH7 PCI id
        x86: HPET force enable ICH5 suspend/resume fix
        x86: HPET force enable for ICH5
        x86: HPET try to activate force detected hpet
        x86: HPET force enable o ICH7 and later
        x86: HPET restructure hpet code for hpet force enable
        clock events: allow replacement of broadcast timer
        i386/x8664: cleanup the shared hpet code
        i386: Remove the useless #ifdef in i8253.h
        ACPI: remove the now unused ifdef code
        jiffies: remove unused macros
        x86_64: cleanup apic.c after clock events switch
        x86_64: remove now unused code
        x86: unify timex.h variants
        x86: kill 8253pit.h
        x86: disable apic timer for AMD C1E enabled CPUs
        x86: Fix irq0 / local apic timer accounting
        x86_64: convert to clock events
        x86_64: Add (not yet used) clock event functions
        x86_64: prepare idle loop for dynamic ticks
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 · a6e3d7db
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (23 commits)
        ocfs2: Optionally return filldir errors
        ocfs2: Write support for directories with inline data
        ocfs2: Read support for directories with inline data
        ocfs2: Write support for inline data
        ocfs2: Read support for inline data
        ocfs2: Structure updates for inline data
        ocfs2: Cleanup dirent size check
        ocfs2: Rename cleanups
        ocfs2: Provide convenience function for ino lookup
        ocfs2: Implement ocfs2_empty_dir() as a caller of ocfs2_dir_foreach()
        ocfs2: Remove open coded readdir()
        ocfs2: Pass raw u64 to filldir
        ocfs2: Abstract out core dir listing functionality
        ocfs2: Move directory manipulation code into dir.c
        ocfs2: Small refactor of truncate zeroing code
        ocfs2: move nonsparse hole-filling into ocfs2_write_begin()
        ocfs2: Sync ocfs2_fs.h with ocfs2-tools
        [PATCH] fs/ocfs2/: removed unneeded initial value and function's return value
        ocfs2: Implement show_options()
        ocfs2: Clear slot map when umounting a local volume
    • Linus Torvalds's avatar
      Merge branch 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 · 42f04b6d
      Linus Torvalds authored
      * 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
        [ISDN] HiSax diva: split setup into three smaller functions
        [ISDN] HiSax sedlbauer: move ISAPNP and PCI code into functions of their own
        [ISDN] HiSax elsa: split huge setup function into four smaller functions
        [ISDN] HiSax avm_pci: split setup into three smaller functions
        [ISDN] Remove CONFIG_PCI ifdefs from 100% PCI source code
    • Greg Kroah-Hartman's avatar
      PCI: merge almost all of pci_32.h and pci_64.h together · f3e6f164
      Greg Kroah-Hartman authored
      It was just duplicated code...
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Jeff Garzik's avatar
      PCI: X86: Introduce and enable PCI domain support · a79e4198
      Jeff Garzik authored
      * fix bug in pci_read() and pci_write() which prevented PCI domain
        support from working (hardcoded domain 0).
      * unconditionally enable CONFIG_PCI_DOMAINS
      * implement pci_domain_nr() and pci_proc_domain(), as required of
        all arches when CONFIG_PCI_DOMAINS is enabled.
      * store domain in struct pci_sysdata, as assigned by ACPI
      * support "pci=nodomains"
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Jeff Garzik's avatar
      PCI: Add 'nodomains' boot option, and pci_domains_supported global · 32a2eea7
      Jeff Garzik authored
      * Introduce pci_domains_supported global, hardcoded to zero if
      * Introduce 'nodomains' boot option, which clears pci_domains_supported
        on platforms that enable it by default (x86, x86-64, and others when
        they are converted to use this).
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Gary Hade's avatar
      PCI: modify PCI bridge control ISA flag for clarity · 11949255
      Gary Hade authored
      Modify PCI Bridge Control ISA flag for clarity
      This patch changes PCI_BRIDGE_CTL_NO_ISA to PCI_BRIDGE_CTL_ISA
      and modifies it's clarifying comment and locations where used.
      The change reduces the chance of future confusion since it makes
      the set/unset meaning of the bit the same in both the bridge
      control register and bridge_ctl field of the pci_bus struct.
      Signed-off-by: default avatarGary Hade <garyhade@us.ibm.com>
      Acked-by: default avatarLinas Vepstas <linas@austin.ibm.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Gary Hade's avatar
      PCI: use _CRS for PCI resource allocation · 62f420f8
      Gary Hade authored
      Use _CRS for PCI resource allocation
      This patch resolves an issue where incorrect PCI memory and i/o ranges
      are being assigned to hotplugged PCI devices on some IBM systems.  The
      resource mis-allocation not only makes the PCI device unuseable but
      often makes the entire system unuseable due to resulting machine checks.
      The hotplug capable PCI slots on the affected systems are not located
      under a standard P2P bridge but are instead located under PCI root
      bridges or subtractive decode P2P bridges.  For example, the IBM x3850
      contains 2 hotplug capable PCI-X slots and 4 hotplug capable PCIe slots
      with the PCI-X slots each located under a PCI root bridge and the PCIe
      slots each located under a subtractive decode P2P bridge.
      The current i386/x86_64 PCI resource allocation code does not use _CRS
      returned resource information.  No other resource information source is
      available for slots that are not below a standard P2P bridge so
      incorrect ranges are being allocated from e820 hole causing the bad
      This patch causes the kernel to use _CRS returned resource info.  It is
      roughly based on a change provided by Matthew Wilcox for the ia64 kernel
      in 2005.  Due to possible buggy BIOS factor and possible yet to be
      discovered kernel issues the function is disabled by default and can be
      enabled with pci=use_crs.
      Signed-off-by: default avatarGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Gary Hade's avatar
      PCI: avoid P2P prefetch window for expansion ROMs · fd64cb46
      Gary Hade authored
      Avoid creating P2P prefetch window for expansion ROMs
      Because of the future possibility that P2P prefetch windows will contain
      address ranges above 4GB some BIOSes are providing space in the P2P
      non-prefetch windows for expansion ROMs.  This is due to expansion ROM
      BAR 32-bit limitation.  When expansion ROM BARs without BIOS assigned
      address(es) are currently found behind a P2P bridge, the kernel attempts
      to create a P2P prefetch window for them even though space for them has
      already been provided in the non-prefetch window.  _CRS on some systems
      with certain resource conservation conscious BIOSes may not provide the
      extra 1MB or more memory resource needed for the expansion ROM motivated
      prefetch window causing resource allocation errors.
      This change corrects the problem by removing IORESOURCE_PREFETCH from
      the expansion ROM flags initialization.  It also removes
      IORESOURCE_CACHEABLE which seems inappropriate if only non-cacheable
      memory is available.
      Signed-off-by: default avatarGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Gary Hade's avatar
      PCI: skip ISA ioresource alignment on some systems · 036fff4c
      Gary Hade authored
      Skip ISA ioresource alignment on some systems
      To conserve limited PCI i/o resource on some IBM multi-node systems, the
      BIOS allocates (via _CRS) and expects the kernel to use addresses in
      ranges currently excluded by pcibios_align_resource() [i386/pci/i386.c].
      This change allows the kernel to use the currently excluded address
      ranges on the IBM x3800, x3850, and x3950.
      Signed-off-by: default avatarGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Gary Hade's avatar
      PCI: remove transparent bridge sizing · 8fa5913d
      Gary Hade authored
      Remove transparent bridge sizing.
      Due to code in pci_read_bridge_bases() [drivers/pci/probe.c] the child
      bus of a transparent bridge already has access to the parent bus
      resources so transparent bridge sizing appears unnecessary.  The bridge
      sizing includes alignment and granularity adjustments that can cause
      significantly more memory to be reserved from the parant bus than
      required by devices on the child bus and allotted by _CRS.
      Signed-off-by: default avatarGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • David Rientjes's avatar
      pci: write file size to inode on proc bus file write · ecb39080
      David Rientjes authored
      When a /proc/bus/pci file is written to, the size of that PCI device's
      configuration space must be written to the inode.  Otherwise, it is
      possible for the file to specify a size of 0 on stat if a task is holding
      the same file open.
      Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>