diff options
-rw-r--r-- | drivers/pci/pcie/aer.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index 122a78197172..f70ee6dfb79e 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c | |||
@@ -1063,7 +1063,6 @@ static DECLARE_WORK(aer_recover_work, aer_recover_work_func); | |||
1063 | void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, | 1063 | void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, |
1064 | int severity, struct aer_capability_regs *aer_regs) | 1064 | int severity, struct aer_capability_regs *aer_regs) |
1065 | { | 1065 | { |
1066 | unsigned long flags; | ||
1067 | struct aer_recover_entry entry = { | 1066 | struct aer_recover_entry entry = { |
1068 | .bus = bus, | 1067 | .bus = bus, |
1069 | .devfn = devfn, | 1068 | .devfn = devfn, |
@@ -1072,13 +1071,12 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, | |||
1072 | .regs = aer_regs, | 1071 | .regs = aer_regs, |
1073 | }; | 1072 | }; |
1074 | 1073 | ||
1075 | spin_lock_irqsave(&aer_recover_ring_lock, flags); | 1074 | if (kfifo_in_spinlocked(&aer_recover_ring, &entry, sizeof(entry), |
1076 | if (kfifo_put(&aer_recover_ring, entry)) | 1075 | &aer_recover_ring_lock)) |
1077 | schedule_work(&aer_recover_work); | 1076 | schedule_work(&aer_recover_work); |
1078 | else | 1077 | else |
1079 | pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n", | 1078 | pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n", |
1080 | domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); | 1079 | domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); |
1081 | spin_unlock_irqrestore(&aer_recover_ring_lock, flags); | ||
1082 | } | 1080 | } |
1083 | EXPORT_SYMBOL_GPL(aer_recover_queue); | 1081 | EXPORT_SYMBOL_GPL(aer_recover_queue); |
1084 | #endif | 1082 | #endif |