07 Jan, 2012

2 commits

  • 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
     
  • 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
     

02 Aug, 2011

1 commit


23 Jul, 2011

1 commit

  • …/git/tip/linux-2.6-tip

    * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    iommu/core: Fix build with INTR_REMAP=y && CONFIG_DMAR=n
    iommu/amd: Don't use MSI address range for DMA addresses
    iommu/amd: Move missing parts to drivers/iommu
    iommu: Move iommu Kconfig entries to submenu
    x86/ia64: intel-iommu: move to drivers/iommu/
    x86: amd_iommu: move to drivers/iommu/
    msm: iommu: move to drivers/iommu/
    drivers: iommu: move to a dedicated folder
    x86/amd-iommu: Store device alias as dev_data pointer
    x86/amd-iommu: Search for existind dev_data before allocting a new one
    x86/amd-iommu: Allow dev_data->alias to be NULL
    x86/amd-iommu: Use only dev_data in low-level domain attach/detach functions
    x86/amd-iommu: Use only dev_data for dte and iotlb flushing routines
    x86/amd-iommu: Store ATS state in dev_data
    x86/amd-iommu: Store devid in dev_data
    x86/amd-iommu: Introduce global dev_data_list
    x86/amd-iommu: Remove redundant device_flush_dte() calls
    iommu-api: Add missing header file

    Fix up trivial conflicts (independent additions close to each other) in
    drivers/Makefile and include/linux/pci.h

    Linus Torvalds
     

09 Jul, 2011

1 commit

  • Multiple attempts to dynamically reallocate pci resources have
    unfortunately lead to regressions. Though we continue to fix the
    regressions and fine tune the dynamic-reallocation behavior, we have not
    reached a acceptable state yet.

    This patch provides a interim solution. It disables dynamic reallocation
    by default, but adds the ability to enable it through pci=realloc kernel
    command line parameter.

    Tested-by: Oliver Hartkopp
    Signed-off-by: Ram Pai
    Signed-off-by: Jesse Barnes

    Ram Pai
     

21 Jun, 2011

1 commit

  • This should ease finding similarities with different platforms,
    with the intention of solving problems once in a generic framework
    which everyone can use.

    Note: to move intel-iommu.c, the declaration of pci_find_upstream_pcie_bridge()
    has to move from drivers/pci/pci.h to include/linux/pci.h. This is handled
    in this patch, too.

    As suggested, also drop DMAR's EXPERIMENTAL tag while we're at it.

    Compile-tested on x86_64.

    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     

24 May, 2011

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (27 commits)
    PCI: Don't use dmi_name_in_vendors in quirk
    PCI: remove unused AER functions
    PCI/sysfs: move bus cpuaffinity to class dev_attrs
    PCI: add rescan to /sys/.../pci_bus/.../
    PCI: update bridge resources to get more big ranges when allocating space (again)
    KVM: Use pci_store/load_saved_state() around VM device usage
    PCI: Add interfaces to store and load the device saved state
    PCI: Track the size of each saved capability data area
    PCI/e1000e: Add and use pci_disable_link_state_locked()
    x86/PCI: derive pcibios_last_bus from ACPI MCFG
    PCI: add latency tolerance reporting enable/disable support
    PCI: add OBFF enable/disable support
    PCI: add ID-based ordering enable/disable support
    PCI hotplug: acpiphp: assume device is in state D0 after powering on a slot.
    PCI: Set PCIE maxpayload for card during hotplug insertion
    PCI/ACPI: Report _OSC control mask returned on failure to get control
    x86/PCI: irq and pci_ids patch for Intel Panther Point DeviceIDs
    PCI: handle positive error codes
    PCI: check pci_vpd_pci22_wait() return
    PCI: Use ICH6_GPIO_EN in ich6_lpc_acpi_gpio
    ...

    Fix up trivial conflicts in include/linux/pci_ids.h: commit a6e5e2be4461
    moved the intel SMBUS ID definitons to the i2c-i801.c driver.

    Linus Torvalds
     

22 May, 2011

2 commits

  • Requested by Greg KH to fix a race condition in the creating of PCI bus
    cpuaffinity files.

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

    Yinghai Lu
     
  • After remove the device from /sys, we have to rescan all or
    find out the bridge and access /sys../device/rescan there.

    this patch add /sys/.../pci_bus/.../rescan. So user can rescan more easy.
    that is more clean and easy to understand.

    like after remove 0000:c4:00.0, you can rescan 0000:c4 directly.

    -v2: According to Jesse, use function instead of exposing attr, so could hide
    #ifdef in header file.
    also add code to remove rescan file in remove path.
    -v3: GregKH pointed out that we should use dev_attrs to avoid racing.
    So add pcibus_attrs and make it to be member of pcibus_attrs.
    -v4: Change name to pcibus_dev_attrs according to GregKH

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

    Yinghai Lu
     

11 Apr, 2011

1 commit

  • This patch moves the relevant declarations from the local
    header file in drivers/pci to a more accessible locations so
    that it can be used by the AMD IOMMU driver too.
    The file is named pci-ats.h because support for the PCI PRI
    capability will also be added there in a later patch-set.

    Signed-off-by: Joerg Roedel
    Acked-by: Jesse Barnes

    Joerg Roedel
     

05 Mar, 2011

1 commit

  • This patch exports ACPI _DSM (Device Specific Method) provided firmware
    instance number and string name of PCI devices as defined by 'PCI
    Firmware Specification Revision 3.1' section 4.6.7.( DSM for Naming a
    PCI or PCI Express Device Under Operating Systems) to sysfs.

    New files created are:
    /sys/bus/pci/devices/.../label which contains the firmware name for
    the device in question, and
    /sys/bus/pci/devices/.../acpi_index which contains the firmware device type
    instance for the given device.

    cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/acpi_index
    1
    cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/label
    Embedded Broadcom 5709C NIC 1

    cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/acpi_index
    2
    cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/label
    Embedded Broadcom 5709C NIC 2

    The ACPI _DSM provided firmware 'instance number' and 'string name' will
    be given priority if the firmware also provides 'SMBIOS type 41 device
    type instance and string'.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Jordan Hargrave
    Signed-off-by: Narendra K
    Signed-off-by: Jesse Barnes

    Narendra_K@Dell.com
     

15 Jan, 2011

2 commits

  • After recent changes related to wakeup events pm_wakeup_event()
    automatically checks if the given device is configured to signal wakeup,
    so pci_wakeup_event() may be a static inline function calling
    pm_wakeup_event() directly.

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

    Rafael J. Wysocki
     
  • Move the evaluation of acpi_pci_osc_control_set() (to request control of
    PCI Express native features) into acpi_pci_root_add() to avoid calling
    it many times for the same root complex with the same arguments.
    Additionally, check if all of the requisite _OSC support bits are set
    before calling acpi_pci_osc_control_set() for a given root complex.

    References: https://bugzilla.kernel.org/show_bug.cgi?id=20232
    Reported-by: Ozan Caglayan
    Tested-by: Ozan Caglayan
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

12 Nov, 2010

1 commit

  • The checks for valid mmaps of PCI resources made through /proc/bus/pci files
    that were introduced in 9eff02e2042f96fb2aedd02e032eca1c5333d767 have several
    problems:

    1. mmap() calls on /proc/bus/pci files are made with real file offsets > 0,
    whereas under /sys/bus/pci/devices, the start of the resource corresponds
    to offset 0. This may lead to false negatives in pci_mmap_fits(), which
    implicitly assumes the /sys/bus/pci/devices layout.

    2. The loop in proc_bus_pci_mmap doesn't skip empty resouces. This leads
    to false positives, because pci_mmap_fits() doesn't treat empty resources
    correctly (the calculated size is 1 << (8*sizeof(resource_size_t)-PAGE_SHIFT)
    in this case!).

    3. If a user maps resources with BAR > 0, pci_mmap_fits will emit bogus
    WARNINGS for the first resources that don't fit until the correct one is found.

    On many controllers the first 2-4 BARs are used, and the others are empty.
    In this case, an mmap attempt will first fail on the non-empty BARs
    (including the "right" BAR because of 1.) and emit bogus WARNINGS because
    of 3., and finally succeed on the first empty BAR because of 2.
    This is certainly not the intended behaviour.

    This patch addresses all 3 issues.
    Updated with an enum type for the additional parameter for pci_mmap_fits().

    Cc: stable@kernel.org
    Signed-off-by: Martin Wilck
    Signed-off-by: Jesse Barnes

    Martin Wilck
     

18 Oct, 2010

1 commit


10 Sep, 2010

1 commit

  • This fixes the prototype for both pci_resource_alignment() and
    pci_sriov_resource_alignment().

    Patch started as debugging effort from Cam Macdonell.

    Cc: Cam Macdonell
    Cc: Avi Kivity
    [chrisw: add iov bits]
    Signed-off-by: Chris Wright
    Signed-off-by: Jesse Barnes

    Cam Macdonell
     

25 Aug, 2010

1 commit


07 Aug, 2010

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (30 commits)
    PCI: update for owner removal from struct device_attribute
    PCI: Fix warnings when CONFIG_DMI unset
    PCI: Do not run NVidia quirks related to MSI with MSI disabled
    x86/PCI: use for_each_pci_dev()
    PCI: use for_each_pci_dev()
    PCI: MSI: Restore read_msi_msg_desc(); add get_cached_msi_msg_desc()
    PCI: export SMBIOS provided firmware instance and label to sysfs
    PCI: Allow read/write access to sysfs I/O port resources
    x86/PCI: use host bridge _CRS info on ASRock ALiveSATA2-GLAN
    PCI: remove unused HAVE_ARCH_PCI_SET_DMA_MAX_SEGMENT_{SIZE|BOUNDARY}
    PCI: disable mmio during bar sizing
    PCI: MSI: Remove unsafe and unnecessary hardware access
    PCI: Default PCIe ASPM control to on and require !EMBEDDED to disable
    PCI: kernel oops on access to pci proc file while hot-removal
    PCI: pci-sysfs: remove casts from void*
    ACPI: Disable ASPM if the platform won't provide _OSC control for PCIe
    PCI hotplug: make sure child bridges are enabled at hotplug time
    PCI hotplug: shpchp: Removed check for hotplug of display devices
    PCI hotplug: pciehp: Fixed return value sign for pciehp_unconfigure_device
    PCI: Don't enable aspm before drivers have had a chance to veto it
    ...

    Linus Torvalds
     

03 Aug, 2010

1 commit

  • This patch fixes the below warnings introduced by the commit
    911e1c9b05a8e3559a7aa89083930700a0b9e7ee ("PCI:
    export SMBIOS provided firmware instance and label to sysfs").

    drivers/pci/pci.h: In function ‘pci_create_firmware_label_files’:
    drivers/pci/pci.h:16: warning: ‘return’ with a value, in function returning void
    drivers/pci/pci.h: In function ‘pci_remove_firmware_label_files’:
    drivers/pci/pci.h:18: warning: ‘return’ with a value, in function returning void

    The warnings are seen because of the below code, doing a retun 0
    from the functions 'pci_create_firmware_label_files' and
    'pci_remove_firmware_label_files' defined as void.

    +#ifndef CONFIG_DMI
    +static inline void pci_create_firmware_label_files(struct pci_dev *pdev)
    +{ return 0; }
    +static inline void pci_remove_firmware_label_files(struct pci_dev *pdev)
    +{ return 0; }

    Signed-off-by: Narendra K
    Signed-off-by: Jesse Barnes

    Narendra K
     

31 Jul, 2010

1 commit

  • This patch exports SMBIOS provided firmware instance and label of
    onboard PCI devices to sysfs. New files are:
    /sys/bus/pci/devices/.../label which contains the firmware name for
    the device in question, and
    /sys/bus/pci/devices/.../index which contains the firmware device type
    instance for the given device.

    Signed-off-by: Jordan Hargrave
    Signed-off-by: Narendra K
    Signed-off-by: Jesse Barnes

    Narendra K
     

19 Jul, 2010

1 commit

  • One of the arguments during the suspend blockers discussion was that
    the mainline kernel didn't contain any mechanisms making it possible
    to avoid races between wakeup and system suspend.

    Generally, there are two problems in that area. First, if a wakeup
    event occurs exactly when /sys/power/state is being written to, it
    may be delivered to user space right before the freezer kicks in, so
    the user space consumer of the event may not be able to process it
    before the system is suspended. Second, if a wakeup event occurs
    after user space has been frozen, it is not generally guaranteed that
    the ongoing transition of the system into a sleep state will be
    aborted.

    To address these issues introduce a new global sysfs attribute,
    /sys/power/wakeup_count, associated with a running counter of wakeup
    events and three helper functions, pm_stay_awake(), pm_relax(), and
    pm_wakeup_event(), that may be used by kernel subsystems to control
    the behavior of this attribute and to request the PM core to abort
    system transitions into a sleep state already in progress.

    The /sys/power/wakeup_count file may be read from or written to by
    user space. Reads will always succeed (unless interrupted by a
    signal) and return the current value of the wakeup events counter.
    Writes, however, will only succeed if the written number is equal to
    the current value of the wakeup events counter. If a write is
    successful, it will cause the kernel to save the current value of the
    wakeup events counter and to abort the subsequent system transition
    into a sleep state if any wakeup events are reported after the write
    has returned.

    [The assumption is that before writing to /sys/power/state user space
    will first read from /sys/power/wakeup_count. Next, user space
    consumers of wakeup events will have a chance to acknowledge or
    veto the upcoming system transition to a sleep state. Finally, if
    the transition is allowed to proceed, /sys/power/wakeup_count will
    be written to and if that succeeds, /sys/power/state will be written
    to as well. Still, if any wakeup events are reported to the PM core
    by kernel subsystems after that point, the transition will be
    aborted.]

    Additionally, put a wakeup events counter into struct dev_pm_info and
    make these per-device wakeup event counters available via sysfs,
    so that it's possible to check the activity of various wakeup event
    sources within the kernel.

    To illustrate how subsystems can use pm_wakeup_event(), make the
    low-level PCI runtime PM wakeup-handling code use it.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Jesse Barnes
    Acked-by: Greg Kroah-Hartman
    Acked-by: markgross
    Reviewed-by: Alan Stern

    Rafael J. Wysocki
     

11 May, 2010

1 commit


23 Feb, 2010

4 commits

  • Introduce run-time PM callbacks for the PCI bus type. Make the new
    callbacks work in analogy with the existing system sleep PM
    callbacks, so that the drivers already converted to struct dev_pm_ops
    can use their suspend and resume routines for run-time PM without
    modifications.

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

    Rafael J. Wysocki
     
  • Although the majority of PCI devices can generate PMEs that in
    principle may be used to wake up devices suspended at run time,
    platform support is generally necessary to convert PMEs into wake-up
    events that can be delivered to the kernel. If ACPI is used for this
    purpose, PME signals generated by a PCI device will trigger the ACPI
    GPE associated with the device to generate an ACPI wake-up event that
    we can set up a handler for, provided that everything is configured
    correctly.

    Unfortunately, the subset of PCI devices that have GPEs associated
    with them is quite limited. The devices without dedicated GPEs have
    to rely on the GPEs associated with other devices (in the majority of
    cases their upstream bridges and, possibly, the root bridge) to
    generate ACPI wake-up events in response to PME signals from them.

    Add ACPI platform support for PCI PME wake-up:
    o Add a framework making is possible to use ACPI system notify
    handlers for run-time PM.
    o Add new PCI platform callback ->run_wake() to struct
    pci_platform_pm_ops allowing us to enable/disable the platform to
    generate wake-up events for given device. Implemet this callback
    for the ACPI platform.
    o Define ACPI wake-up handlers for PCI devices and PCI root buses and
    make the PCI-ACPI binding code register wake-up notifiers for all
    PCI devices present in the ACPI tables.
    o Add function pci_dev_run_wake() which can be used by PCI drivers to
    check if given device is capable of generating wake-up events at
    run time.

    Developed in cooperation with Matthew Garrett .

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

    Rafael J. Wysocki
     
  • Add function pci_check_pme_status() that will check the PME status
    bit of given device and clear it along with the PME enable bit. It
    will be necessary for PCI run-time power management.

    Based on a patch from Shaohua Li

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

    Rafael J. Wysocki
     
  • Currently, drivers/pci/quirks.c is built unconditionally, but if
    CONFIG_PCI_QUIRKS is unset, the only things actually built in this
    file are definitions of global variables and empty functions (due to
    the #ifdef CONFIG_PCI_QUIRKS embracing all of the code inside the
    file). This is not particularly nice and if someone overlooks
    the #ifdef CONFIG_PCI_QUIRKS, build errors are introduced.

    To clean that up, move the definitions of the global variables in
    quirks.c that are always built to pci.c, move the definitions of
    the empty functions (compiled when CONFIG_PCI_QUIRKS is unset) to
    headers (additionally make these functions static inline) and modify
    drivers/pci/Makefile so that quirks.c is only built if
    CONFIG_PCI_QUIRKS is set.

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

    Rafael J. Wysocki
     

01 Jan, 2010

1 commit

  • After commit b9c3b266411d27f1a6466c19d146d08db576bfea ("PCI: support
    device-specific reset methods") the kernel build is broken if
    CONFIG_PCI_QUIRKS is unset.

    Fix this by moving pci_dev_specific_reset() to drivers/pci/quirks.c and
    providing an empty replacement for !CONFIG_PCI_QUIRKS builds.

    Signed-off-by: Rafael J. Wysocki
    Reported-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

17 Dec, 2009

1 commit

  • Add a new type of quirk for resetting devices at pci_dev_reset time.
    This is necessary to handle device with nonstandard reset procedures,
    especially useful for guest drivers.

    Signed-off-by: Yu Zhao
    Signed-off-by: Dexuan Cui
    Signed-off-by: Jesse Barnes

    Dexuan Cui
     

05 Nov, 2009

1 commit

  • Note: dom0 checking in v4 has been separated out into 2/2.

    This patch enables P2P upstream forwarding in ACS capable PCIe switches.
    It solves two potential problems in virtualization environment where a PCIe
    device is assigned to a guest domain using a HW iommu such as VT-d:

    1) Unintentional failure caused by guest physical address programmed
    into the device's DMA that happens to match the memory address range
    of other downstream ports in the same PCIe switch. This causes the PCI
    transaction to go to the matching downstream port instead of go to the
    root complex to get translated by VT-d as it should be.

    2) Malicious guest software intentionally attacks another downstream
    PCIe device by programming the DMA address into the assigned device
    that matches memory address range of the downstream PCIe port.

    We are in process of implementing device filtering software in KVM/XEN
    management software to allow device assignment of PCIe devices behind a PCIe
    switch only if it has ACS capability and with the P2P upstream forwarding bits
    enabled. This patch is intended to work for both KVM and Xen environments.

    Signed-off-by: Allen Kay
    Reviewed-by: Mathew Wilcox
    Reviewed-by: Chris Wright
    Signed-off-by: Jesse Barnes

    Allen Kay
     

10 Sep, 2009

2 commits

  • There is a very old quirk for the intel E7502 E7320 and E7525 memory
    controller hubs that disables usage of msi interrupts on pcie hotplug
    bridges of those devices, and disables changing the affinity of irqs.

    Today all we have to do to disable msi on a specific device is to set
    dev->no_msi, which is much more straightforward than the previous
    logic.

    The re-running of this fixup after pci hotplug happens below these
    devices is totally bogus. All of the state we change is pure software
    state and we don't change the hardware at all. Which means hotplug on
    the lower devices doesn't have a chance to change this state. So we
    can safely remove the special case from the pciehp driver and the pcie
    portdriver.

    I suspect the special case was someone's expermental debug code that
    slipped in. Certainly it isn't mentioned in commit
    6fb8880a61510295aece04a542767161f624dffe aka BKrev:
    41966101LJ_ogfOU0m2aE6teZfQnuQ where the code first appears.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Jesse Barnes

    Eric W. Biederman
     
  • Some devices allow an individual function to be reset without affecting
    other functions in the same device: that's what pci_reset_function does.
    For devices that have this support, expose reset attribite in sysfs.

    This is useful e.g. for virtualization, where a qemu userspace
    process wants to reset the device when the guest is reset,
    to emulate machine reboot as closely as possible.

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Jesse Barnes

    Michael S. Tsirkin
     

30 Aug, 2009

1 commit

  • An SR-IOV capable device includes an SR-IOV PCIe capability which
    describes the Virtual Function (VF) BAR requirements. A typical SR-IOV
    device can support multiple VFs whose BARs must be in a contiguous region,
    effectively an array of VF BARs. The BAR reports the size requirement
    for a single VF. We calculate the full range needed by simply multiplying
    the VF BAR size with the number of possible VFs and create a resource
    spanning the full range.

    This all seems sane enough except it artificially inflates the alignment
    requirement for the VF BAR. The VF BAR need only be aligned to the size
    of a single BAR not the contiguous range of VF BARs. This can cause us
    to fail to allocate resources for the BAR despite the fact that we
    actually have enough space.

    This patch adds a thin PCI specific layer over the generic
    resource_alignment() function which is aware of the special nature of
    VF BARs and does sorting and allocation based on the smaller alignment
    requirement.

    I recognize that while resource_alignment is generic, it's basically a
    PCI helper. An alternative to this patch is to add PCI VF BAR specific
    information to struct resource. I opted for the extra layer rather than
    adding such PCI specific information to struct resource. This does
    have the slight downside that we don't cache the BAR size and re-read
    for each alignment query (happens a small handful of times during boot
    for each VF BAR).

    Signed-off-by: Chris Wright
    Cc: Ivan Kokshaysky
    Cc: Linus Torvalds
    Cc: Matthew Wilcox
    Cc: Yu Zhao
    Cc: stable@kernel.org
    Signed-off-by: Jesse Barnes

    Chris Wright
     

18 May, 2009

2 commits

  • The SR-IOV spec requires that the Smallest Translation Unit and
    the Invalidate Queue Depth fields in the Virtual Function ATS
    capability are hardwired to 0. If a function is a Virtual Function,
    then and set its Physical Function's STU before enabling the ATS.

    Signed-off-by: Yu Zhao
    Acked-by: Jesse Barnes
    Signed-off-by: David Woodhouse

    Yu Zhao
     
  • The PCIe ATS capability makes the Endpoint be able to request the
    DMA address translation from the IOMMU and cache the translation
    in the device side, thus alleviate IOMMU pressure and improve the
    hardware performance in the I/O virtualization environment.

    Signed-off-by: Yu Zhao
    Acked-by: Jesse Barnes
    Signed-off-by: David Woodhouse

    Yu Zhao
     

02 Apr, 2009

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (88 commits)
    PCI: fix HT MSI mapping fix
    PCI: don't enable too much HT MSI mapping
    x86/PCI: make pci=lastbus=255 work when acpi is on
    PCI: save and restore PCIe 2.0 registers
    PCI: update fakephp for bus_id removal
    PCI: fix kernel oops on bridge removal
    PCI: fix conflict between SR-IOV and config space sizing
    powerpc/PCI: include pci.h in powerpc MSI implementation
    PCI Hotplug: schedule fakephp for feature removal
    PCI Hotplug: rename legacy_fakephp to fakephp
    PCI Hotplug: restore fakephp interface with complete reimplementation
    PCI: Introduce /sys/bus/pci/devices/.../rescan
    PCI: Introduce /sys/bus/pci/devices/.../remove
    PCI: Introduce /sys/bus/pci/rescan
    PCI: Introduce pci_rescan_bus()
    PCI: do not enable bridges more than once
    PCI: do not initialize bridges more than once
    PCI: always scan child buses
    PCI: pci_scan_slot() returns newly found devices
    PCI: don't scan existing devices
    ...

    Fix trivial append-only conflict in Documentation/feature-removal-schedule.txt

    Linus Torvalds
     

31 Mar, 2009

1 commit


21 Mar, 2009

4 commits

  • This interface allows the user to force a rescan of all PCI buses
    in system, and rediscover devices that have been removed earlier.

    pci_bus_attrs implementation from Trent Piepho.

    Thanks to Vegard Nossum for discovering locking issues with the
    sysfs interface.

    Cc: Trent Piepho
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     
  • Add or remove a Virtual Function after receiving a Migrate In or Out
    Request.

    Reviewed-by: Matthew Wilcox
    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Yu Zhao
     
  • Add or remove the Virtual Function when the SR-IOV is enabled or
    disabled by the device driver. This can happen anytime rather than
    only at the device probe stage.

    Reviewed-by: Matthew Wilcox
    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Yu Zhao
     
  • Move the device setup stuff into pci_setup_device() which will be used
    to setup the Virtual Function later.

    Reviewed-by: Matthew Wilcox
    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Yu Zhao