Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72357d59 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
  PCI MSI: Fix MSI-X with NIU cards
  PCI: Fix pci-e port driver slot_reset bad default return value
parents 7c7327d9 8d181018
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -455,8 +455,6 @@ static int msix_capability_init(struct pci_dev *dev,
		entry->msi_attrib.default_irq = dev->irq;
		entry->msi_attrib.pos = pos;
		entry->mask_base = base;
		entry->masked = readl(base + j * PCI_MSIX_ENTRY_SIZE +
					PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
		msix_mask_irq(entry, 1);

		list_add_tail(&entry->list, &dev->msi_list);
@@ -493,6 +491,12 @@ static int msix_capability_init(struct pci_dev *dev,
	msix_set_enable(dev, 1);
	dev->msix_enabled = 1;

	list_for_each_entry(entry, &dev->msi_list, list) {
		int vector = entry->msi_attrib.entry_nr;
		entry->masked = readl(base + vector * PCI_MSIX_ENTRY_SIZE +
					PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
	}

	return 0;
}

+3 −0
Original line number Diff line number Diff line
@@ -95,6 +95,9 @@ struct aer_broadcast_data {
static inline pci_ers_result_t merge_result(enum pci_ers_result orig,
		enum pci_ers_result new)
{
	if (new == PCI_ERS_RESULT_NONE)
		return orig;

	switch (orig) {
	case PCI_ERS_RESULT_CAN_RECOVER:
	case PCI_ERS_RESULT_RECOVERED:
+1 −1
Original line number Diff line number Diff line
@@ -200,7 +200,7 @@ static int slot_reset_iter(struct device *device, void *data)

static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev)
{
	pci_ers_result_t status = PCI_ERS_RESULT_NONE;
	pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
	int retval;

	/* If fatal, restore cfg space for possible link reset at upstream */