diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-17 19:57:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-17 19:57:20 -0400 |
commit | bb07b00be77fb33274cb44a03bdbf2471e556189 (patch) | |
tree | 620390077de843dd7626998f0d8441d14a6c66d9 /drivers/pci | |
parent | b7165ebbf0898bad9aaeddfa22b918e94ed90e07 (diff) | |
parent | 7d132055814ef17a6c7b69f342244c410a5e000f (diff) |
Merge 3.10-rc6 into driver-core-next
We want these fixes here too.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pcie/aer/aerdrv_core.c | 5 | ||||
-rw-r--r-- | drivers/pci/pcie/aer/aerdrv_errprint.c | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c index 8ec8b4f48560..0f4554e48cc5 100644 --- a/drivers/pci/pcie/aer/aerdrv_core.c +++ b/drivers/pci/pcie/aer/aerdrv_core.c | |||
@@ -580,6 +580,7 @@ struct aer_recover_entry | |||
580 | u8 devfn; | 580 | u8 devfn; |
581 | u16 domain; | 581 | u16 domain; |
582 | int severity; | 582 | int severity; |
583 | struct aer_capability_regs *regs; | ||
583 | }; | 584 | }; |
584 | 585 | ||
585 | static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry, | 586 | static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry, |
@@ -593,7 +594,7 @@ static DEFINE_SPINLOCK(aer_recover_ring_lock); | |||
593 | static DECLARE_WORK(aer_recover_work, aer_recover_work_func); | 594 | static DECLARE_WORK(aer_recover_work, aer_recover_work_func); |
594 | 595 | ||
595 | void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, | 596 | void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, |
596 | int severity) | 597 | int severity, struct aer_capability_regs *aer_regs) |
597 | { | 598 | { |
598 | unsigned long flags; | 599 | unsigned long flags; |
599 | struct aer_recover_entry entry = { | 600 | struct aer_recover_entry entry = { |
@@ -601,6 +602,7 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, | |||
601 | .devfn = devfn, | 602 | .devfn = devfn, |
602 | .domain = domain, | 603 | .domain = domain, |
603 | .severity = severity, | 604 | .severity = severity, |
605 | .regs = aer_regs, | ||
604 | }; | 606 | }; |
605 | 607 | ||
606 | spin_lock_irqsave(&aer_recover_ring_lock, flags); | 608 | spin_lock_irqsave(&aer_recover_ring_lock, flags); |
@@ -627,6 +629,7 @@ static void aer_recover_work_func(struct work_struct *work) | |||
627 | PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn)); | 629 | PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn)); |
628 | continue; | 630 | continue; |
629 | } | 631 | } |
632 | cper_print_aer(pdev, entry.severity, entry.regs); | ||
630 | do_recovery(pdev, entry.severity); | 633 | do_recovery(pdev, entry.severity); |
631 | pci_dev_put(pdev); | 634 | pci_dev_put(pdev); |
632 | } | 635 | } |
diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c index 5ab14251839d..2c7c9f5f592c 100644 --- a/drivers/pci/pcie/aer/aerdrv_errprint.c +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c | |||
@@ -220,7 +220,7 @@ int cper_severity_to_aer(int cper_severity) | |||
220 | } | 220 | } |
221 | EXPORT_SYMBOL_GPL(cper_severity_to_aer); | 221 | EXPORT_SYMBOL_GPL(cper_severity_to_aer); |
222 | 222 | ||
223 | void cper_print_aer(const char *prefix, struct pci_dev *dev, int cper_severity, | 223 | void cper_print_aer(struct pci_dev *dev, int cper_severity, |
224 | struct aer_capability_regs *aer) | 224 | struct aer_capability_regs *aer) |
225 | { | 225 | { |
226 | int aer_severity, layer, agent, status_strs_size, tlp_header_valid = 0; | 226 | int aer_severity, layer, agent, status_strs_size, tlp_header_valid = 0; |
@@ -244,7 +244,7 @@ void cper_print_aer(const char *prefix, struct pci_dev *dev, int cper_severity, | |||
244 | agent = AER_GET_AGENT(aer_severity, status); | 244 | agent = AER_GET_AGENT(aer_severity, status); |
245 | dev_err(&dev->dev, "aer_status: 0x%08x, aer_mask: 0x%08x\n", | 245 | dev_err(&dev->dev, "aer_status: 0x%08x, aer_mask: 0x%08x\n", |
246 | status, mask); | 246 | status, mask); |
247 | cper_print_bits(prefix, status, status_strs, status_strs_size); | 247 | cper_print_bits("", status, status_strs, status_strs_size); |
248 | dev_err(&dev->dev, "aer_layer=%s, aer_agent=%s\n", | 248 | dev_err(&dev->dev, "aer_layer=%s, aer_agent=%s\n", |
249 | aer_error_layer[layer], aer_agent_string[agent]); | 249 | aer_error_layer[layer], aer_agent_string[agent]); |
250 | if (aer_severity != AER_CORRECTABLE) | 250 | if (aer_severity != AER_CORRECTABLE) |