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

Commit ecae65e1 authored by Keith Busch's avatar Keith Busch Committed by Bjorn Helgaas
Browse files

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: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 27c1ce8b
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -1063,7 +1063,6 @@ static DECLARE_WORK(aer_recover_work, aer_recover_work_func);
void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
		       int severity, struct aer_capability_regs *aer_regs)
		       int severity, struct aer_capability_regs *aer_regs)
{
{
	unsigned long flags;
	struct aer_recover_entry entry = {
	struct aer_recover_entry entry = {
		.bus		= bus,
		.bus		= bus,
		.devfn		= devfn,
		.devfn		= devfn,
@@ -1072,13 +1071,12 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
		.regs		= aer_regs,
		.regs		= aer_regs,
	};
	};


	spin_lock_irqsave(&aer_recover_ring_lock, flags);
	if (kfifo_in_spinlocked(&aer_recover_ring, &entry, sizeof(entry),
	if (kfifo_put(&aer_recover_ring, entry))
				 &aer_recover_ring_lock))
		schedule_work(&aer_recover_work);
		schedule_work(&aer_recover_work);
	else
	else
		pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n",
		pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n",
		       domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
		       domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
	spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
}
}
EXPORT_SYMBOL_GPL(aer_recover_queue);
EXPORT_SYMBOL_GPL(aer_recover_queue);
#endif
#endif