Re: [PATCH 1/2] pci: Convert to use built-in RCU list checking

From: Joel Fernandes
Date: Wed Sep 04 2019 - 01:04:23 EST


On Wed, Sep 04, 2019 at 12:06:43PM +0800, kbuild test robot wrote:
> Hi "Joel,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on linus/master]
> [cannot apply to v5.3-rc7 next-20190903]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Joel-Fernandes-Google/pci-Convert-to-use-built-in-RCU-list-checking/20190901-211013
> config: x86_64-rhel-7.6 (attached as .config)
> compiler: gcc-7 (Debian 7.4.0-11) 7.4.0
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=x86_64

This error seems bogus. I pulled -next and applied this patch and it builds
fine. I am not sure what is wrong with the 0day tree, and the above 0day link
is also dead.

What's going on with 0day ?!

thanks,

- Joel

>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
>
> All error/warnings (new ones prefixed by >>):
>
> drivers/pci/controller/vmd.c: In function 'vmd_irq':
> >> drivers/pci/controller/vmd.c:722:37: error: macro "list_for_each_entry_rcu" passed 4 arguments, but takes just 3
> srcu_read_lock_held(&irqs->srcu))
> ^
> >> drivers/pci/controller/vmd.c:721:2: error: unknown type name 'list_for_each_entry_rcu'
> list_for_each_entry_rcu(vmdirq, &irqs->irq_list, node,
> ^~~~~~~~~~~~~~~~~~~~~~~
> >> drivers/pci/controller/vmd.c:723:28: error: expected ')' before '->' token
> generic_handle_irq(vmdirq->virq);
> ^~
> >> drivers/pci/controller/vmd.c:721:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
> list_for_each_entry_rcu(vmdirq, &irqs->irq_list, node,
> ^~~~~~~~~~~~~~~~~~~~~~~
> drivers/pci/controller/vmd.c:717:18: warning: unused variable 'vmdirq' [-Wunused-variable]
> struct vmd_irq *vmdirq;
> ^~~~~~
>
> vim +/list_for_each_entry_rcu +722 drivers/pci/controller/vmd.c
>
> 713
> 714 static irqreturn_t vmd_irq(int irq, void *data)
> 715 {
> 716 struct vmd_irq_list *irqs = data;
> 717 struct vmd_irq *vmdirq;
> 718 int idx;
> 719
> 720 idx = srcu_read_lock(&irqs->srcu);
> > 721 list_for_each_entry_rcu(vmdirq, &irqs->irq_list, node,
> > 722 srcu_read_lock_held(&irqs->srcu))
> > 723 generic_handle_irq(vmdirq->virq);
> 724 srcu_read_unlock(&irqs->srcu, idx);
> 725
> 726 return IRQ_HANDLED;
> 727 }
> 728
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation