PCI/AER: Use kfifo_in_spinlocked() to insert locked elements
authorKeith Busch <keith.busch@intel.com>
Tue, 18 Sep 2018 23:58:44 +0000 (17:58 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 8 Oct 2018 17:18:13 +0000 (12:18 -0500)
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>
drivers/pci/pcie/aer.c

index 122a781..f70ee6d 100644 (file)
@@ -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,
                       int severity, struct aer_capability_regs *aer_regs)
 {
-       unsigned long flags;
        struct aer_recover_entry entry = {
                .bus            = bus,
                .devfn          = devfn,
@@ -1072,13 +1071,12 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
                .regs           = aer_regs,
        };
 
-       spin_lock_irqsave(&aer_recover_ring_lock, flags);
-       if (kfifo_put(&aer_recover_ring, entry))
+       if (kfifo_in_spinlocked(&aer_recover_ring, &entry, sizeof(entry),
+                                &aer_recover_ring_lock))
                schedule_work(&aer_recover_work);
        else
                pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n",
                       domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
-       spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
 }
 EXPORT_SYMBOL_GPL(aer_recover_queue);
 #endif