1. 13 10月, 2007 40 次提交
    • R
      KVM: Trivial: Use standard BITMAP macros, open-code userspace-exposed header · 9eb829ce
      Rusty Russell 提交于
      Creating one's own BITMAP macro seems suboptimal: if we use manual
      arithmetic in the one place exposed to userspace, we can use standard
      macros elsewhere.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      9eb829ce
    • R
      KVM: Use standard CR4 flags, tighten checking · 66aee91a
      Rusty Russell 提交于
      On this machine (Intel), writing to the CR4 bits 0x00000800 and
      0x00001000 cause a GPF.  The Intel manual is a little unclear, but
      AFIACT they're reserved, too.
      
      Also fix spelling of CR4_RESEVED_BITS.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      66aee91a
    • R
      KVM: Use standard CR3 flags, tighten checking · f802a307
      Rusty Russell 提交于
      The kernel now has asm/cpu-features.h: use those macros instead of inventing
      our own.
      
      Also spell out definition of CR3_RESEVED_BITS, fix spelling and
      tighten it for the non-PAE case.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      f802a307
    • R
      KVM: Trivial: Use standard CR0 flags macros from asm/cpu-features.h · 707d92fa
      Rusty Russell 提交于
      The kernel now has asm/cpu-features.h: use those macros instead of
      inventing our own.
      
      Also spell out definition of CR0_RESEVED_BITS (no code change) and fix typo.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      707d92fa
    • R
      KVM: Trivial: Avoid hardware_disable predeclaration · 9a2b85c6
      Rusty Russell 提交于
      Don't pre-declare hardware_disable: shuffle the reboot hook down.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      9a2b85c6
    • R
      KVM: Trivial: Comment spelling may escape grep · dcc0766b
      Rusty Russell 提交于
      Speling error in comment.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      dcc0766b
    • R
      KVM: Trivial: Make decode_register() static · 1e3c5cb0
      Rusty Russell 提交于
      I have shied away from touching x86_emulate.c (it could definitely use
      some love, but it is forked from the Xen code, and it would be more
      productive to cross-merge fixes).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      1e3c5cb0
    • R
      5eb549a0
    • R
      KVM: Trivial: /dev/kvm interface is no longer experimental. · dea8caee
      Rusty Russell 提交于
      KVM interface is no longer experimental.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      dea8caee
    • E
      KVM: In-kernel string pio write support · 65619eb5
      Eddie Dong 提交于
      Add string pio write support to support some version of Windows.
      Signed-off-by: NYaozu (Eddie) Dong <eddie.dong@intel.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      65619eb5
    • A
      KVM: Future-proof the exit information union ABI · 24cbc7e9
      Avi Kivity 提交于
      Note that as the size of struct kvm_run is not part of the ABI, we can add
      things at the end.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      24cbc7e9
    • Q
      KVM: SMP: Add vcpu_id field in struct vcpu · dad3795d
      Qing He 提交于
      This patch adds a `vcpu_id' field in `struct vcpu', so we can
      differentiate BSP and APs without pointer comparison or arithmetic.
      Signed-off-by: NQing He <qing.he@intel.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      dad3795d
    • N
      KVM: Fix *nopage() in kvm_main.c · cd0d9137
      Nguyen Anh Quynh 提交于
      *nopage() in kvm_main.c should only store the type of mmap() fault if
      the pointers are not NULL. This patch fixes the problem.
      Signed-off-by: NNguyen Anh Quynh <aquynh@gmail.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      cd0d9137
    • A
      i386: Expose IOAPIC register definitions even if CONFIG_X86_IO_APIC is not set · 81fe96bd
      Avi Kivity 提交于
      KVM reuses the IOAPIC register definitions, and needs them even if the
      host is not compiled with IOAPIC support.  Move the #ifdef below so that only
      the IOAPIC variables and functions are protected, and the register definitions
      are available to all.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      81fe96bd
    • J
      x86/pci/acpi: fix DMI const-ification fallout · 752097ce
      Jeff Garzik 提交于
      Fix DMI const-ification fallout that appeared when merging subsystem
      trees.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      752097ce
    • N
      x86: optimise barriers · b6c7347f
      Nick Piggin 提交于
      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
      barrier.
      
          http://developer.intel.com/products/processor/manuals/318147.pdf
          http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24593.pdf
      
      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
      too).
      
      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
      required.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b6c7347f
    • N
      x86: fix IO write barrier · 4071c718
      Nick Piggin 提交于
      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: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4071c718
    • N
      x86: fence oostores on 64-bit · df1bdc06
      Nick Piggin 提交于
      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: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      df1bdc06
    • L
      Only enable BLOCK_COMPAT if COMPAT is needed · 2b9e0aae
      Linus Torvalds 提交于
      IOW, it needs to depend on both CONFIG_BLOCK and CONFIG_COMPAT.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2b9e0aae
    • L
      Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · ab9c2322
      Linus Torvalds 提交于
      * '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
        ...
      ab9c2322
    • A
      Update maintainers file · 8bd0983e
      Andi Kleen 提交于
      Since there is no x86-64 architecture anymore it cannot be maintained.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8bd0983e
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 · 6a84258e
      Linus Torvalds 提交于
      * 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
        ...
      6a84258e
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 · efefc6eb
      Linus Torvalds 提交于
      * 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()
        ...
      efefc6eb
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 117494a1
      Linus Torvalds 提交于
      * 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
        ...
      117494a1
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq · 4d5709a7
      Linus Torvalds 提交于
      * 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
      4d5709a7
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86 · 57c5b999
      Linus Torvalds 提交于
      * 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
        ...
      57c5b999
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 · a6e3d7db
      Linus Torvalds 提交于
      * '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
        ...
      a6e3d7db
    • L
      Merge branch 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 · 42f04b6d
      Linus Torvalds 提交于
      * '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
      42f04b6d
    • G
      PCI: merge almost all of pci_32.h and pci_64.h together · f3e6f164
      Greg Kroah-Hartman 提交于
      It was just duplicated code...
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f3e6f164
    • J
      PCI: X86: Introduce and enable PCI domain support · a79e4198
      Jeff Garzik 提交于
      * 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: NJeff Garzik <jgarzik@redhat.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a79e4198
    • J
      PCI: Add 'nodomains' boot option, and pci_domains_supported global · 32a2eea7
      Jeff Garzik 提交于
      * Introduce pci_domains_supported global, hardcoded to zero if
        !CONFIG_PCI_DOMAINS.
      
      * 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: NJeff Garzik <jgarzik@redhat.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      32a2eea7
    • G
      PCI: modify PCI bridge control ISA flag for clarity · 11949255
      Gary Hade 提交于
      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: NGary Hade <garyhade@us.ibm.com>
      Acked-by: NLinas Vepstas <linas@austin.ibm.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      11949255
    • G
      PCI: use _CRS for PCI resource allocation · 62f420f8
      Gary Hade 提交于
      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
      result.
      
      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: NGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      62f420f8
    • G
      PCI: avoid P2P prefetch window for expansion ROMs · fd64cb46
      Gary Hade 提交于
      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: NGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      fd64cb46
    • G
      PCI: skip ISA ioresource alignment on some systems · 036fff4c
      Gary Hade 提交于
      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: NGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      036fff4c
    • G
      PCI: remove transparent bridge sizing · 8fa5913d
      Gary Hade 提交于
      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: NGary Hade <gary.hade@us.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8fa5913d
    • D
      pci: write file size to inode on proc bus file write · ecb39080
      David Rientjes 提交于
      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: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ecb39080
    • D
      pci: use size stored in proc_dir_entry for proc bus files · cd68602f
      David Rientjes 提交于
      On pci_proc_attach_device(), the size of the PCI configuration space is
      stored in the proc_dir_entry as the size of the file.  Thus, the procfs
      interface to PCI devices should use it instead of the device directly.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      cd68602f
    • R
      pci: implement "pci=noaer" · 7f785763
      Randy Dunlap 提交于
      For cases in which CONFIG_PCIEAER=y (such as distro kernels), allow users
      to disable PCIE Advanced Error Reporting by using "pci=noaer" on the
      kernel command line.
      
      This can be used to work around hardware or (kernel) software problems.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7f785763
    • Y
      PCI: fix IDE legacy mode resources · fd6e7321
      Yoichi Yuasa 提交于
      I got the following error on MIPS Cobalt.
      
      PCI: Unable to reserve I/O region #1:8@f00001f0 for device 0000:00:09.1
      pata_via 0000:00:09.1: failed to request/iomap BARs for port 0 (errno=-16)
      PCI: Unable to reserve I/O region #3:8@f0000170 for device 0000:00:09.1
      pata_via 0000:00:09.1: failed to request/iomap BARs for port 1 (errno=-16)
      pata_via 0000:00:09.1: no available native port
      
      The legacy mode IDE resources set the following order.
      
      pci_setup_device()
          Legacy mode ATA controllers have fixed addresses.
          IDE resources: 0x1F0-0x1F7, 0x3F6, 0x170-0x177, 0x376
          |
          V
      pcibios_fixup_bus()
          MIPS Cobalt PCI bus regions have the -0x10000000 offset from PCI resources.
          pcibios_fixup_bus() fix PCI bus regions.
          0x1F0 - 0x10000000 = 0xF00001F0
          |
          V
      ata_pci_init_one()
          PCI: Unable to reserve I/O region #1:8@f00001f0 for device 0000:00:09.1
      
      In some architectures, PCI bus regions have the offset from PCI resources. 
      For this reason, pci_setup_device() should set PCI bus regions to
      dev->resource[].
      
      [akpm@linux-foundation.org: use struct initialiser]
      Signed-off-by: NYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Greg KH <greg@kroah.com>
      Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      fd6e7321