15 Jan, 2012

1 commit

  • * 'for-linus' of git://selinuxproject.org/~jmorris/linux-security:
    capabilities: remove __cap_full_set definition
    security: remove the security_netlink_recv hook as it is equivalent to capable()
    ptrace: do not audit capability check when outputing /proc/pid/stat
    capabilities: remove task_ns_* functions
    capabitlies: ns_capable can use the cap helpers rather than lsm call
    capabilities: style only - move capable below ns_capable
    capabilites: introduce new has_ns_capabilities_noaudit
    capabilities: call has_ns_capability from has_capability
    capabilities: remove all _real_ interfaces
    capabilities: introduce security_capable_noaudit
    capabilities: reverse arguments to security_capable
    capabilities: remove the task from capable LSM hook entirely
    selinux: sparse fix: fix several warnings in the security server cod
    selinux: sparse fix: fix warnings in netlink code
    selinux: sparse fix: eliminate warnings for selinuxfs
    selinux: sparse fix: declare selinux_disable() in security.h
    selinux: sparse fix: move selinux_complete_init
    selinux: sparse fix: make selinux_secmark_refcount static
    SELinux: Fix RCU deref check warning in sel_netport_insert()

    Manually fix up a semantic mis-merge wrt security_netlink_recv():

    - the interface was removed in commit fd7784615248 ("security: remove
    the security_netlink_recv hook as it is equivalent to capable()")

    - a new user of it appeared in commit a38f7907b926 ("crypto: Add
    userspace configuration API")

    causing no automatic merge conflict, but Eric Paris pointed out the
    issue.

    Linus Torvalds
     

13 Jan, 2012

1 commit


12 Jan, 2012

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (80 commits)
    x86/PCI: Expand the x86_msi_ops to have a restore MSIs.
    PCI: Increase resource array mask bit size in pcim_iomap_regions()
    PCI: DEVICE_COUNT_RESOURCE should be equal to PCI_NUM_RESOURCES
    PCI: pci_ids: add device ids for STA2X11 device (aka ConneXT)
    PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB
    x86/PCI: amd: factor out MMCONFIG discovery
    PCI: Enable ATS at the device state restore
    PCI: msi: fix imbalanced refcount of msi irq sysfs objects
    PCI: kconfig: English typo in pci/pcie/Kconfig
    PCI/PM/Runtime: make PCI traces quieter
    PCI: remove pci_create_bus()
    xtensa/PCI: convert to pci_scan_root_bus() for correct root bus resources
    x86/PCI: convert to pci_create_root_bus() and pci_scan_root_bus()
    x86/PCI: use pci_scan_bus() instead of pci_scan_bus_parented()
    x86/PCI: read Broadcom CNB20LE host bridge info before PCI scan
    sparc32, leon/PCI: convert to pci_scan_root_bus() for correct root bus resources
    sparc/PCI: convert to pci_create_root_bus()
    sh/PCI: convert to pci_scan_root_bus() for correct root bus resources
    powerpc/PCI: convert to pci_create_root_bus()
    powerpc/PCI: split PHB part out of pcibios_map_io_space()
    ...

    Fix up conflicts in drivers/pci/msi.c and include/linux/pci_regs.h due
    to the same patches being applied in other branches.

    Linus Torvalds
     

11 Jan, 2012

2 commits

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (53 commits)
    iommu/amd: Set IOTLB invalidation timeout
    iommu/amd: Init stats for iommu=pt
    iommu/amd: Remove unnecessary cache flushes in amd_iommu_resume
    iommu/amd: Add invalidate-context call-back
    iommu/amd: Add amd_iommu_device_info() function
    iommu/amd: Adapt IOMMU driver to PCI register name changes
    iommu/amd: Add invalid_ppr callback
    iommu/amd: Implement notifiers for IOMMUv2
    iommu/amd: Implement IO page-fault handler
    iommu/amd: Add routines to bind/unbind a pasid
    iommu/amd: Implement device aquisition code for IOMMUv2
    iommu/amd: Add driver stub for AMD IOMMUv2 support
    iommu/amd: Add stat counter for IOMMUv2 events
    iommu/amd: Add device errata handling
    iommu/amd: Add function to get IOMMUv2 domain for pdev
    iommu/amd: Implement function to send PPR completions
    iommu/amd: Implement functions to manage GCR3 table
    iommu/amd: Implement IOMMUv2 TLB flushing routines
    iommu/amd: Add support for IOMMUv2 domain mode
    iommu/amd: Add amd_iommu_domain_direct_map function
    ...

    Linus Torvalds
     
  • * 'stable/for-linus-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (37 commits)
    xen/pciback: Expand the warning message to include domain id.
    xen/pciback: Fix "device has been assigned to X domain!" warning
    xen/pciback: Move the PCI_DEV_FLAGS_ASSIGNED ops to the "[un|]bind"
    xen/xenbus: don't reimplement kvasprintf via a fixed size buffer
    xenbus: maximum buffer size is XENSTORE_PAYLOAD_MAX
    xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX.
    Xen: consolidate and simplify struct xenbus_driver instantiation
    xen-gntalloc: introduce missing kfree
    xen/xenbus: Fix compile error - missing header for xen_initial_domain()
    xen/netback: Enable netback on HVM guests
    xen/grant-table: Support mappings required by blkback
    xenbus: Use grant-table wrapper functions
    xenbus: Support HVM backends
    xen/xenbus-frontend: Fix compile error with randconfig
    xen/xenbus-frontend: Make error message more clear
    xen/privcmd: Remove unused support for arch specific privcmp mmap
    xen: Add xenbus_backend device
    xen: Add xenbus device driver
    xen: Add privcmd device driver
    xen/gntalloc: fix reference counts on multi-page mappings
    ...

    Linus Torvalds
     

09 Jan, 2012

2 commits

  • Conflicts:
    drivers/pci/hotplug/acpiphp_glue.c

    Joerg Roedel
     
  • * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)
    reiserfs: Properly display mount options in /proc/mounts
    vfs: prevent remount read-only if pending removes
    vfs: count unlinked inodes
    vfs: protect remounting superblock read-only
    vfs: keep list of mounts for each superblock
    vfs: switch ->show_options() to struct dentry *
    vfs: switch ->show_path() to struct dentry *
    vfs: switch ->show_devname() to struct dentry *
    vfs: switch ->show_stats to struct dentry *
    switch security_path_chmod() to struct path *
    vfs: prefer ->dentry->d_sb to ->mnt->mnt_sb
    vfs: trim includes a bit
    switch mnt_namespace ->root to struct mount
    vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
    vfs: opencode mntget() mnt_set_mountpoint()
    vfs: spread struct mount - remaining argument of next_mnt()
    vfs: move fsnotify junk to struct mount
    vfs: move mnt_devname
    vfs: move mnt_list to struct mount
    vfs: switch pnode.h macros to struct mount *
    ...

    Linus Torvalds
     

07 Jan, 2012

29 commits

  • The MSI restore function will become a function pointer in an
    x86_msi_ops struct. It defaults to the implementation in the
    io_apic.c and msi.c. We piggyback on the indirection mechanism
    introduced by "x86: Introduce x86_msi_ops".

    Cc: x86@kernel.org
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: linux-pci@vger.kernel.org
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Jesse Barnes

    Konrad Rzeszutek Wilk
     
  • * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Skip cpus with apic-ids >= 255 in !x2apic_mode
    x86, x2apic: Allow "nox2apic" to disable x2apic mode setup by BIOS
    x86, x2apic: Fallback to xapic when BIOS doesn't setup interrupt-remapping
    x86, acpi: Skip acpi x2apic entries if the x2apic feature is not present
    x86, apic: Add probe() for apic_flat
    x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86'
    x86: Convert per-cpu counter icr_read_retry_count into a member of irq_stat
    x86: Add per-cpu stat counter for APIC ICR read tries
    pci, x86/io-apic: Allow PCI_IOAPIC to be user configurable on x86
    x86: Fix the !CONFIG_NUMA build of the new CPU ID fixup code support
    x86: Add NumaChip support
    x86: Add x86_init platform override to fix up NUMA core numbering
    x86: Make flat_init_apic_ldr() available

    Linus Torvalds
     
  • During S3 or S4 resume or PCI reset, ATS regs aren't restored correctly.
    This patch enables ATS at the device state restore if PCI device has ATS
    capability.

    Signed-off-by: Xudong Hao
    Signed-off-by: Xiantao Zhang
    Signed-off-by: Jesse Barnes

    Hao, Xudong
     
  • This warning was recently reported to me:

    ------------[ cut here ]------------
    WARNING: at lib/kobject.c:595 kobject_put+0x50/0x60()
    Hardware name: VMware Virtual Platform
    kobject: '(null)' (ffff880027b0df40): is not initialized, yet kobject_put() is
    being called.
    Modules linked in: vmxnet3(+) vmw_balloon i2c_piix4 i2c_core shpchp raid10
    vmw_pvscsi
    Pid: 630, comm: modprobe Tainted: G W 3.1.6-1.fc16.x86_64 #1
    Call Trace:
    [] warn_slowpath_common+0x7f/0xc0
    [] warn_slowpath_fmt+0x46/0x50
    [] ? free_desc+0x63/0x70
    [] kobject_put+0x50/0x60
    [] free_msi_irqs+0xd5/0x120
    [] pci_enable_msi_block+0x24c/0x2c0
    [] vmxnet3_alloc_intr_resources+0x173/0x240 [vmxnet3]
    [] vmxnet3_probe_device+0x615/0x834 [vmxnet3]
    [] local_pci_probe+0x5c/0xd0
    [] pci_device_probe+0x109/0x130
    [] driver_probe_device+0x9c/0x2b0
    [] __driver_attach+0xab/0xb0
    [] ? driver_probe_device+0x2b0/0x2b0
    [] ? driver_probe_device+0x2b0/0x2b0
    [] bus_for_each_dev+0x5c/0x90
    [] driver_attach+0x1e/0x20
    [] bus_add_driver+0x1b0/0x2a0
    [] ? 0xffffffffa0187fff
    [] driver_register+0x76/0x140
    [] ? printk+0x51/0x53
    [] ? 0xffffffffa0187fff
    [] __pci_register_driver+0x56/0xd0
    [] vmxnet3_init_module+0x3a/0x3c [vmxnet3]
    [] do_one_initcall+0x42/0x180
    [] sys_init_module+0x91/0x200
    [] system_call_fastpath+0x16/0x1b
    ---[ end trace 44593438a59a9558 ]---
    Using INTx interrupt, #Rx queues: 1.

    It occurs when populate_msi_sysfs fails, which in turn causes free_msi_irqs to
    be called. Because populate_msi_sysfs fails, we never registered any of the
    msi irq sysfs objects, but free_msi_irqs still calls kobject_del and kobject_put
    on each of them, which gets flagged in the above stack trace.

    The fix is pretty straightforward. We can key of the parent pointer in the
    kobject. It is only set if the kobject_init_and_add succededs in
    populate_msi_sysfs. If anything fails there, each kobject has its parent reset
    to NULL

    Signed-off-by: Neil Horman
    CC: Bjorn Helgaas
    CC: Greg Kroah-Hartman
    CC: linux-pci@vger.kernel.org
    Signed-off-by: Jesse Barnes

    Neil Horman
     
  • Just fix this help text.

    Signed-off-by: P. Christeas
    Signed-off-by: Jesse Barnes

    P. Christeas
     
  • When the runtime PM is activated on PCI, if a device switches state
    frequently (e.g. an EHCI controller with autosuspending USB devices
    connected) the PCI configuration traces might be very verbose in the
    kernel log. Let's guard those traces with DEBUG condition.

    Acked-by: "Rafael J. Wysocki"
    Signed-off-by: Vincent Palatin
    Signed-off-by: Jesse Barnes

    Vincent Palatin
     
  • All users of pci_create_bus() have been converted to pci_create_root_bus(),
    so remove it.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • Users of pci_scan_bus_parented() should be converted to use either
    pci_scan_root_bus() (preferred, but also calls pci_bus_add_devices)
    or
    pci_create_root_bus()
    pci_scan_child_bus()

    Since pci_scan_bus_parented(), I'm marking it deprecated now and will
    actually remove it later.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • This converts pci_scan_bus_parented() to use pci_create_root_bus()
    instead of pci_create_bus(). The new bus still has the default (incorrect)
    resources, so this patch doesn't help fix that problem, but it does remove
    one more use of pci_create_bus().

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • I plan to deprecate pci_scan_bus_parented(), so use pci_create_root_bus()
    directly instead. pci_scan_bus() itself will be removed as soon as all
    callers are gone, so this is just an interim step.

    v2: export pci_scan_bus

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • "Early" and "header" quirks often use incorrect bus resources because they
    see the default resources assigned by pci_create_bus(), before the
    architecture fixes them up (typically in pcibios_fixup_bus()). Regions
    reserved by these quirks end up with the wrong parents.

    Here's the standard path for scanning a PCI root bus:

    pci_scan_bus or pci_scan_bus_parented
    pci_create_bus
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • pci_create_bus() assigns ioport_resource and iomem_resource as the default
    bus resources, i.e., the entire address space. Architectures fix these
    later, typically in pcibios_fixup_bus() or after pci_scan_bus_parented()
    returns, but code that runs in the interim sees incorrect resource
    information.

    This patch adds a new pci_create_root_bus() that sets the bus resources
    correctly from a supplied list of resources.

    I intend to remove pci_create_bus() after changing all callers.

    Based on original patch by Deng-Cheng Zhu.

    Reference: http://www.spinics.net/lists/mips/msg41654.html
    Reference: https://lkml.org/lkml/2011/8/26/88
    Signed-off-by: Deng-Cheng Zhu
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • Show the bus number and resources for every root bus we create. This
    will become more interesting when we supply the correct resources
    instead of using the defaults (ioport_resource and iomem_resource).

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • We'd like to supply a list of resources when we create a new PCI bus,
    e.g., the root bus under a PCI host bridge. These are helpers for
    constructing that list.

    These are exported because the plan is to replace this exported interface:
    pci_scan_bus_parented()
    with this one:
    pci_add_resource(resources, ...)
    pci_scan_root_bus(..., resources)

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • The SRIOV capability, namely page size and total_vfs of a device are
    configured during enumeration phase of the device. This can potentially
    interfere with the PCI operations of the platform, if the IOV capability
    of the device is not enabled.

    The following patch postpones the configuration of the IOV capability of
    the device to a later point, when the IOV capability is explicitly
    enabled by the device driver.

    The patch is tested on x86 and power platform.

    Tested-by: Donald Dutile
    Signed-off-by: Ram Pai
    Signed-off-by: Jesse Barnes

    Ram Pai
     
  • During debugging pcie hotplug with SRIOV with pcie switch, I found
    pci_stop_bus_device() is called several times for some child devices.

    So change original pci_remove_bus_device() to __pci_remove_bus_device(),
    and make it only do remove work, and add a new pci_remove_bus_device
    that calls pci_stop_bus_device() one time, and then call
    __pci_remove_bus_device().

    Signed-off-by: Yinghai Lu
    Signed-off-by: Jesse Barnes

    Yinghai Lu
     
  • The latency timer is read-only and hardwired to zero for all PCIe
    devices, both Type 0 and Type 1, so don't bother trying to update it
    and cluttering the dmesg log with meaningless "setting latency timer
    to 64" messages.

    Signed-off-by: Myron Stowe
    Signed-off-by: Jesse Barnes

    Myron Stowe
     
  • The 'latency timer' of PCI devices, both Type 0 and Type 1,
    is setup in architecture-specific code [see: 'pcibios_set_master()'].
    There are two approaches being taken by all the architectures - check
    if the 'latency timer' is currently set between 16 and 255 and if not
    bring it within bounds, or, do nothing (and then there is the
    gratuitously different PA-RISC implementation).

    There is nothing architecture-specific about PCI's 'latency timer' so
    this patch pulls its setup functionality up into the PCI core by
    creating a generic 'pcibios_set_master()' function using the '__weak'
    attribute which can be used by all architectures as a default which,
    if necessary, can then be over-ridden by architecture-specific code.

    No functional change.

    Signed-off-by: Myron Stowe
    Signed-off-by: Jesse Barnes

    Myron Stowe
     
  • These new PCI services allow to probe for 2.3-compliant INTx masking
    support and then use the feature from PCI interrupt handlers. The
    services are properly synchronized with concurrent config space access
    via sysfs or on device reset.

    This enables generic PCI device drivers like uio_pci_generic or KVM's
    device assignment to implement the necessary kernel-side IRQ handling
    without any knowledge about device-specific interrupt status and control
    registers.

    Acked-by: Michael S. Tsirkin
    Signed-off-by: Jan Kiszka
    Signed-off-by: Jesse Barnes

    Jan Kiszka
     
  • pci_block_user_cfg_access was designed for the use case that a single
    context, the IPR driver, temporarily delays user space accesses to the
    config space via sysfs. This assumption became invalid by the time
    pci_dev_reset was added as locking instance. Today, if you run two loops
    in parallel that reset the same device via sysfs, you end up with a
    kernel BUG as pci_block_user_cfg_access detect the broken assumption.

    This reworks the pci_block_user_cfg_access to a sleeping service
    pci_cfg_access_lock and an atomic-compatible variant called
    pci_cfg_access_trylock. The former not only blocks user space access as
    before but also waits if access was already locked. The latter service
    just returns false in this case, allowing the caller to resolve the
    conflict instead of raising a BUG.

    Adaptions of the ipr driver were originally written by Brian King.

    Acked-by: Brian King
    Acked-by: Michael S. Tsirkin
    Signed-off-by: Jan Kiszka
    Signed-off-by: Jesse Barnes

    Jan Kiszka
     
  • Fixed a brace coding style issue.

    Signed-off-by: Zac Storer
    Signed-off-by: Jesse Barnes

    Zac Storer
     
  • Include the driver name and device in warning when a pci driver
    supports both legacy pm and new framework as just the stack trace
    gives no way to identify the driver.

    Signed-off-by: David Fries
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    David Fries
     
  • I traced a nasty kexec on panic boot failure to the fact that we had
    screaming msi interrupts and we were not disabling the msi messages at
    kernel startup. The booting kernel had not enabled those interupts so
    was not prepared to handle them.

    I can see no reason why we would ever want to leave the msi interrupts
    enabled at boot if something else has enabled those interrupts. The pci
    spec specifies that msi interrupts should be off by default. Drivers
    are expected to enable the msi interrupts if they want to use them. Our
    interrupt handling code reprograms the interrupt handlers at boot and
    will not be be able to do anything useful with an unexpected interrupt.

    This patch applies cleanly all of the way back to 2.6.32 where I noticed
    the problem.

    Cc: stable@kernel.org
    Signed-off-by: Eric W. Biederman
    Signed-off-by: Jesse Barnes

    Eric W. Biederman
     
  • Modify pci_acpi_wake_dev() to avoid resuming PME-capable devices
    whose PME Status bits are not set, which may happen currently if
    several devices are associated with the same wakeup GPE and all
    of them are notified whenever at least one of them signals PME.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     
  • Use non-ordered workqueue for attention button events.

    Attention button events on each slot can be handled asynchronously. So
    we should use non-ordered workqueue. This patch also removes ordered
    workqueue in pciehp as a result.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     
  • Fix improper workqueue cleanup.

    In the current pciehp, pcied_cleanup() calls destroy_workqueue()
    before calling pcie_port_service_unregister(). This causes kernel oops
    because flush_workqueue() is called in the pcie_port_service_unregister()
    code path after the workqueue was destroyed. So pcied_cleanup() must call
    pcie_port_service_unregister() first before calling destroy_workqueue().

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     
  • Right now we forcibly clear ASPM state on all devices if the BIOS indicates
    that the feature isn't supported. Based on the Microsoft presentation
    "PCI Express In Depth for Windows Vista and Beyond", I'm starting to think
    that this may be an error. The implication is that unless the platform
    grants full control via _OSC, Windows will not touch any PCIe features -
    including ASPM. In that case clearing ASPM state would be an error unless
    the platform has granted us that control.

    This patch reworks the ASPM disabling code such that the actual clearing
    of state is triggered by a successful handoff of PCIe control to the OS.
    The general ASPM code undergoes some changes in order to ensure that the
    ability to clear the bits isn't overridden by ASPM having already been
    disabled. Further, this theoretically now allows for situations where
    only a subset of PCIe roots hand over control, leaving the others in the
    BIOS state.

    It's difficult to know for sure that this is the right thing to do -
    there's zero public documentation on the interaction between all of these
    components. But enough vendors enable ASPM on platforms and then set this
    bit that it seems likely that they're expecting the OS to leave them alone.

    Measured to save around 5W on an idle Thinkpad X220.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Jesse Barnes

    Matthew Garrett
     
  • These are extended capabilities, rename and move to proper
    group for consistency.

    Signed-off-by: Alex Williamson
    Signed-off-by: Jesse Barnes

    Alex Williamson
     
  • This patch adds a per-pci-device subdirectory in sysfs called:
    /sys/bus/pci/devices//msi_irqs

    This sub-directory exports the set of msi vectors allocated by a given
    pci device, by creating a numbered sub-directory for each vector beneath
    msi_irqs. For each vector various attributes can be exported.
    Currently the only attribute is called mode, which tracks the
    operational mode of that vector (msi vs. msix)

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Jesse Barnes

    Neil Horman
     

06 Jan, 2012

1 commit

  • security_capable takes ns, cred, cap. But the LSM capable() hook takes
    cred, ns, cap. The capability helper functions also take cred, ns, cap.
    Rather than flip argument order just to flip it back, leave them alone.
    Heck, this should be a little faster since argument will be in the right
    place!

    Signed-off-by: Eric Paris

    Eric Paris
     

05 Jan, 2012

1 commit

  • The 'name', 'owner', and 'mod_name' members are redundant with the
    identically named fields in the 'driver' sub-structure. Rather than
    switching each instance to specify these fields explicitly, introduce
    a macro to simplify this.

    Eliminate further redundancy by allowing the drvname argument to
    DEFINE_XENBUS_DRIVER() to be blank (in which case the first entry from
    the ID table will be used for .driver.name).

    Also eliminate the questionable xenbus_register_{back,front}end()
    wrappers - their sole remaining purpose was the checking of the
    'owner' field, proper setting of which shouldn't be an issue anymore
    when the macro gets used.

    v2: Restore DRV_NAME for the driver name in xen-pciback.

    Signed-off-by: Jan Beulich
    Cc: Jens Axboe
    Cc: Dmitry Torokhov
    Cc: Florian Tobias Schandinat
    Cc: Ian Campbell
    Cc: David S. Miller
    Signed-off-by: Konrad Rzeszutek Wilk

    Jan Beulich
     

04 Jan, 2012

1 commit


19 Dec, 2011

1 commit

  • I noticed that hotplug of one setup does not work with recent change in
    pci tree.

    After checking the bridge conf setup, I noticed that the bridges get
    assigned but do not get enabled.

    The reason is the following commit, while simply ignores bridge
    resources when enabling a pci device:

    | commit bbef98ab0f019f1b0c25c1acdf1683c68933d41b
    | Author: Ram Pai
    | Date: Sun Nov 6 10:33:10 2011 +0800
    |
    | PCI: defer enablement of SRIOV BARS
    |...
    | NOTE: Note, there is subtle change in the pci_enable_device() API. Any
    | driver that depends on SRIOV BARS to be enabled in pci_enable_device()
    | can fail.

    Put back bridge resource and ROM resource checking to fix the problem.

    That should fix regression like BIOS does not assign correct resource to
    bridge.

    Discussion can be found at:
    http://www.spinics.net/lists/linux-pci/msg12874.html

    Signed-off-by: Yinghai Lu
    Acked-by: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Yinghai Lu