Re: [PATCH] PCI/AER: only insert one element into kfifo

From: Keith Busch
Date: Wed Dec 12 2018 - 09:43:24 EST


On Wed, Dec 12, 2018 at 04:32:30PM +0800, Yanjiang Jin wrote:
> 'commit ecae65e133f2 ("PCI/AER: Use kfifo_in_spinlocked() to
> insert locked elements")' replace kfifo_put() with kfifo_in_spinlocked().
>
> But as "kfifo_in(fifo, buf, n)" describes:
> " * @n: number of elements to be added".
>
> We want to insert only one element into kfifo, not "sizeof(entry) = 16".
> Without this patch, we would get 15 uninitialized elements.
>
> Signed-off-by: Yanjiang Jin <yanjiang.jin@xxxxxxxxxxxxxxxx>

My bad. I had trouble testing the GHES path for this. Thanks for the fix.

Reviewed-by: Keith Busch <keith.busch@xxxxxxxxx>

> ---
> drivers/pci/pcie/aer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index a90a919..fed29de 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,
> .regs = aer_regs,
> };
>
> - if (kfifo_in_spinlocked(&aer_recover_ring, &entry, sizeof(entry),
> + if (kfifo_in_spinlocked(&aer_recover_ring, &entry, 1,
> &aer_recover_ring_lock))
> schedule_work(&aer_recover_work);
> else
> --
> 1.8.3.1