aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2018-09-18 19:58:44 -0400
committerBjorn Helgaas <bhelgaas@google.com>2018-10-08 13:18:13 -0400
commitecae65e133f2e0647e6364d691130ff551382d91 (patch)
treefec941999d4eae75b2a66cc4cd8a10aff5d080ac
parent27c1ce8bbed7e7f0e4a87cf4a93f09be26d62ada (diff)
PCI/AER: Use kfifo_in_spinlocked() to insert locked elements
Use the recommended kernel API for writing to a concurrently-accessed kfifo. No functional change here. Signed-off-by: Keith Busch <keith.busch@intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-rw-r--r--drivers/pci/pcie/aer.c6
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);
1063void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, 1063void 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}
1083EXPORT_SYMBOL_GPL(aer_recover_queue); 1081EXPORT_SYMBOL_GPL(aer_recover_queue);
1084#endif 1082#endif