Message ID | 20190830231817.76862-1-joel@joelfernandes.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | [1/2] pci: Convert to use built-in RCU list checking | expand |
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@intel.com> > > 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
On Wed, Sep 4, 2019 at 8:07 AM Joel Fernandes <joel@joelfernandes.org> wrote: > > 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 ?! I would rather to add Depends-on: ... tag to your patch if the dependency is going thru another tree at the same cycle. kbuildbot absolutely correct here.
On Wed, Sep 4, 2019 at 1:13 PM Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > > On Wed, Sep 4, 2019 at 8:07 AM Joel Fernandes <joel@joelfernandes.org> wrote: > > > > 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 ?! > > I would rather to add Depends-on: ... tag to your patch if the > dependency is going thru another tree at the same cycle. > kbuildbot absolutely correct here. The dependency is already in -next and I pulled it and applied the patch. It is testing -next right? thanks, - Joel
On Wed, Sep 4, 2019 at 9:01 PM Joel Fernandes <joel@joelfernandes.org> wrote: > On Wed, Sep 4, 2019 at 1:13 PM Andy Shevchenko > <andy.shevchenko@gmail.com> wrote: > > On Wed, Sep 4, 2019 at 8:07 AM Joel Fernandes <joel@joelfernandes.org> wrote: > > > On Wed, Sep 04, 2019 at 12:06:43PM +0800, kbuild test robot wrote: > > > > [auto build test ERROR on linus/master] ^^^ (1) > > > > [cannot apply to v5.3-rc7 next-20190903] ^^^ (2) > The dependency is already in -next and I pulled it and applied the > patch. This is a problem. You must provide dependency even for maintainers (in form of immutable branch / tag). The easier way to provide Depends-on (when it's one patch), though kbuild bot doesn't support it. Yet? > It is testing -next right? It testing (1) and (2). (it was unable to apply against next by some reason, but the build error is against latest vanilla failed. And this is completely correct. Just follow the process (see above).
diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c index 4575e0c6dc4b..127631d0c6da 100644 --- a/drivers/pci/controller/vmd.c +++ b/drivers/pci/controller/vmd.c @@ -718,7 +718,8 @@ static irqreturn_t vmd_irq(int irq, void *data) int idx; idx = srcu_read_lock(&irqs->srcu); - list_for_each_entry_rcu(vmdirq, &irqs->irq_list, node) + list_for_each_entry_rcu(vmdirq, &irqs->irq_list, node, + srcu_read_lock_held(&irqs->srcu)) generic_handle_irq(vmdirq->virq); srcu_read_unlock(&irqs->srcu, idx);
CONFIG_PROVE_RCU_LIST requires list_for_each_entry_rcu() to pass a lockdep expression if using srcu or locking for protection. It can only check regular RCU protection, all other protection needs to be passed as lockdep expression. Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> --- drivers/pci/controller/vmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)