From: Marc Zyngier <maz@kernel.org>
To: David Laight <David.Laight@ACULAB.COM>
Cc: 'kernel test robot' <lkp@intel.com>,
"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
'Andy Shevchenko' <andriy.shevchenko@linux.intel.com>,
'Andrew Morton' <akpm@linux-foundation.org>,
"'Matthew Wilcox (Oracle)'" <willy@infradead.org>,
'Christoph Hellwig' <hch@infradead.org>,
"'Jason A.\ Donenfeld'" <Jason@zx2c4.com>,
"llvm@lists.linux.dev" <llvm@lists.linux.dev>,
"oe-kbuild-all@lists.linux.dev" <oe-kbuild-all@lists.linux.dev>,
"Linux\ Memory Management List" <linux-mm@kvack.org>,
Rob Herring <robh@kernel.org>
Subject: Re: [PATCH next resend 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
Date: Wed, 26 Jul 2023 10:50:45 +0100 [thread overview]
Message-ID: <86ila7t30q.wl-maz@kernel.org> (raw)
In-Reply-To: <6bed42e871e74e898b400a404ec6d142@AcuMS.aculab.com>
On Wed, 26 Jul 2023 10:19:48 +0100,
David Laight <David.Laight@ACULAB.COM> wrote:
>
> > From: kernel test robot <lkp@intel.com>
> > Sent: 25 July 2023 19:33
> ...
> >
> > All errors (new ones prefixed by >>):
> >
> > >> drivers/irqchip/irq-mips-cpu.c:288:1: error: call to undeclared function '__typecheck'; ISO C99 and
> > later do not support implicit function declarations [-Wimplicit-function-declaration]
> > 288 | IRQCHIP_DECLARE(cpu_intc, "mti,cpu-interrupt-controller", mips_cpu_irq_of_init);
> > | ^
> > include/linux/irqchip.h:37:38: note: expanded from macro 'IRQCHIP_DECLARE'
> > 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
> > | ^
> > include/linux/irqchip.h:24:3: note: expanded from macro 'typecheck_irq_init_cb'
> > 24 | (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
> > | ^
> > >> drivers/irqchip/irq-mips-cpu.c:288:1: error: initializer element is not a compile-time constant
> > 288 | IRQCHIP_DECLARE(cpu_intc, "mti,cpu-interrupt-controller", mips_cpu_irq_of_init);
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > include/linux/irqchip.h:37:2: note: expanded from macro 'IRQCHIP_DECLARE'
> > 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > include/linux/of.h:1493:3: note: expanded from macro 'OF_DECLARE_2'
> > 1493 | _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > include/linux/of.h:1481:2: note: expanded from macro '_OF_DECLARE'
> > 1481 | _OF_DECLARE_STUB(table, name, compat, fn, fn_type)
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > include/linux/of.h:1470:16: note: expanded from macro '_OF_DECLARE_STUB'
> > 1470 | .data = (fn == (fn_type)NULL) ? fn : fn }
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> It looks like irqchip.h is using __typecheck() which is really
> an internal part of the implementation of min() and max().
> The patched version doesn't use it - hence the build fail.
> I can re-instate it, but this all looks wrong to me.
Please see f1985002839a ("irqchip: Provide stronger type checking for
IRQCHIP_MATCH/IRQCHIP_DECLARE") for the rationale.
Given that this has uncovered a number of bugs, I'm not letting this
go without an equivalent replacement.
> The type of typecheck_irq_init_cb is the same as that of fn_type (although
> they are defined separately).
> Both headers seem to be testing the type - and it must match both.
> So if the test in of.h worked the one in irqchip.h wouldn't have been added.
> So I suspect it doesn't actually do anything - the RHS is NULL, the type
> probably doesn't matter.
They are used in different contexts. See IRQCHIP_MATCH().
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2023-07-26 9:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <a09512c8526b46759669d0b879144563@AcuMS.aculab.com>
2023-07-25 18:02 ` [PATCH next resend 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness kernel test robot
2023-07-25 18:33 ` kernel test robot
2023-07-26 9:19 ` David Laight
2023-07-26 9:50 ` Marc Zyngier [this message]
2023-07-26 10:25 ` David Laight
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86ila7t30q.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=David.Laight@ACULAB.COM \
--cc=Jason@zx2c4.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=robh@kernel.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).