diff options
author | Yanjiang Jin <yanjiang.jin@hxt-semitech.com> | 2018-12-14 12:29:37 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2018-12-14 12:29:37 -0500 |
commit | 1063a5148ac9d1606e80886fa53ee57d45fb4589 (patch) | |
tree | 763e820a0e296d120fdf76bd2bbe852e36143045 | |
parent | b07b864ee4232b03125992a8f6a490b040adcb6a (diff) |
PCI/AER: Queue one GHES event, not several uninitialized ones
ecae65e133f2 ("PCI/AER: Use kfifo_in_spinlocked() to insert locked
elements") replaced kfifo_put() with kfifo_in_spinlocked(), but passed the
*size* of the queue entry, where kfifo_in_spinlocked() expects the *number*
of entries to be copied.
We want to insert only one element into kfifo, not "sizeof(entry) = 16".
Without this patch, we would get 15 uninitialized elements.
Fixes: ecae65e133f2 ("PCI/AER: Use kfifo_in_spinlocked() to insert locked elements")
Signed-off-by: Yanjiang Jin <yanjiang.jin@hxt-semitech.com>
[bhelgaas: changelog]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Keith Busch <keith.busch@intel.com>
-rw-r--r-- | drivers/pci/pcie/aer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index a90a9194ac4a..fed29de783e0 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c | |||
@@ -1064,7 +1064,7 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn, | |||
1064 | .regs = aer_regs, | 1064 | .regs = aer_regs, |
1065 | }; | 1065 | }; |
1066 | 1066 | ||
1067 | if (kfifo_in_spinlocked(&aer_recover_ring, &entry, sizeof(entry), | 1067 | if (kfifo_in_spinlocked(&aer_recover_ring, &entry, 1, |
1068 | &aer_recover_ring_lock)) | 1068 | &aer_recover_ring_lock)) |
1069 | schedule_work(&aer_recover_work); | 1069 | schedule_work(&aer_recover_work); |
1070 | else | 1070 | else |