1. 24 Apr, 2013 3 commits
    • Bjorn Helgaas's avatar
      Merge branch 'pci/gavin-msi-cleanup' into next · d4f09c5d
      Bjorn Helgaas authored
      * pci/gavin-msi-cleanup:
        vfio-pci: Use cached MSI/MSI-X capabilities
        vfio-pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK
        PCI: Remove "extern" from function declarations
        PCI: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK
        PCI: Drop msi_mask_reg() and remove drivers/pci/msi.h
        PCI: Use msix_table_size() directly, drop multi_msix_capable()
        PCI: Drop msix_table_offset_reg() and msix_pba_offset_reg() macros
        PCI: Drop is_64bit_address() and is_mask_bit_support() macros
        PCI: Drop msi_data_reg() macro
        PCI: Drop msi_lower_address_reg() and msi_upper_address_reg() macros
        PCI: Drop msi_control_reg() macro and use PCI_MSI_FLAGS directly
        PCI: Use cached MSI/MSI-X offsets from dev, not from msi_desc
        PCI: Clean up MSI/MSI-X capability #defines
        PCI: Use cached MSI-X cap while enabling MSI-X
        PCI: Use cached MSI cap while enabling MSI interrupts
        PCI: Remove MSI/MSI-X cap check in pci_msi_check_device()
        PCI: Cache MSI/MSI-X capability offsets in struct pci_dev
        PCI: Use u8, not int, for PM capability offset
        [SCSI] megaraid_sas: Use correct #define for MSI-X capability
      d4f09c5d
    • Bjorn Helgaas's avatar
      vfio-pci: Use cached MSI/MSI-X capabilities · a9047f24
      Bjorn Helgaas authored
      We now cache the MSI/MSI-X capability offsets in the struct pci_dev,
      so no need to find the capabilities again.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      a9047f24
    • Bjorn Helgaas's avatar
      vfio-pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK · 508d1aa6
      Bjorn Helgaas authored
      PCI_MSIX_FLAGS_BIRMASK is mis-named because the BIR mask is in the
      Table Offset register, not the flags ("Message Control" per spec)
      register.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      508d1aa6
  2. 23 Apr, 2013 16 commits
  3. 18 Apr, 2013 1 commit
  4. 17 Apr, 2013 5 commits
  5. 16 Apr, 2013 4 commits
    • Bjorn Helgaas's avatar
      Merge branch 'pci/jiang-subdrivers' into next · a3b6bbd5
      Bjorn Helgaas authored
      * pci/jiang-subdrivers:
        PCI/ACPI: Remove support of ACPI PCI subdrivers
        PCI: acpiphp: Protect acpiphp data structures from concurrent updates
        PCI: acpiphp: Use normal list to simplify implementation
        PCI: acpiphp: Do not use ACPI PCI subdriver mechanism
        PCI: acpiphp: Convert acpiphp to be builtin only, not modular
        PCI/ACPI: Handle PCI slot devices when creating/destroying PCI buses
        x86/PCI: Implement pcibios_{add|remove}_bus() hooks
        ia64/PCI: Implement pcibios_{add|remove}_bus() hooks
        PCI/ACPI: Prepare stub functions to handle ACPI PCI (hotplug) slots
        PCI: Add pcibios hooks for adding and removing PCI buses
        PCI: acpiphp: Replace local macros with standard ACPI macros
        PCI: acpiphp: Remove all functions even if function 0 doesn't exist
        PCI: acpiphp: Use list_for_each_entry_safe() in acpiphp_sanitize_bus()
        PCI: Clean up usages of pci_bus->is_added
        PCI: When removing bus, always remove legacy files & unregister
      a3b6bbd5
    • Myron Stowe's avatar
      PCI/ACPI: Remove support of ACPI PCI subdrivers · c309dbb4
      Myron Stowe authored
      Both sub-drivers of the "PCI Root Bridge ("pci_bridge")" driver, "acpiphp"
      and "pci_slot", have been converted to hook directly into the PCI core.
      
      With the conversions there are no remaining usages of the 'struct
      acpi_pci_driver' list based infrastructure.  This patch removes it.
      Signed-off-by: default avatarMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarYinghai Lu <yinghai@kernel.org>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Cc: Toshi Kani <toshi.kani@hp.com>
      c309dbb4
    • Jiang Liu's avatar
      PCI: acpiphp: Protect acpiphp data structures from concurrent updates · 3d54a316
      Jiang Liu authored
      Now acpiphp_enumerate_slots() and acpiphp_remove_slots() may be invoked
      concurrently by the PCI core, so add a bridge_mutex and reference count
      mechanism to protect acpiphp bridge/slot/function data structures.
      
      To avoid deadlock, handle_hotplug_event_bridge() will requeue the
      hotplug event onto the kacpi_hotplug_wq by calling alloc_acpi_hp_work().
      But the workaround has introduced a minor race window because the
      'bridge' passed to _handle_hotplug_event_bridge() may have already been
      destroyed when _handle_hotplug_event_bridge() is actually executed by
      the kacpi_hotplug_wq.  So hold a reference count on the passed 'bridge'.
      Fix the same issue for handle_hotplug_event_func() too.
      Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
      Signed-off-by: default avatarYijing Wang <wangyijing@huawei.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarYinghai Lu <yinghai@kernel.org>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Cc: Toshi Kani <toshi.kani@hp.com>
      3d54a316
    • Yijing Wang's avatar
      PCI: acpiphp: Use normal list to simplify implementation · ad41dd9d
      Yijing Wang authored
      Use normal list for struct acpiphp_slot to simplify implementation.
      Signed-off-by: default avatarYijing Wang <wangyijing@huawei.com>
      Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarYinghai Lu <yinghai@kernel.org>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Cc: Toshi Kani <toshi.kani@hp.com>
      ad41dd9d
  6. 15 Apr, 2013 11 commits