|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC 4/7] arm/gic: Drop pointless assertions
On Wed, 13 Nov 2019, Julien Grall wrote:
> On Tue, 12 Nov 2019, 05:52 Stefano Stabellini, <sstabellini@xxxxxxxxxx> wrote:
> On Wed, 6 Nov 2019, Andrii Anisov wrote:
> > From: Andrii Anisov <andrii_anisov@xxxxxxxx>
> >
> > Also armclang complains about the condition always true,
> > because `sgi` is of type enum with all its values under 16.
> >
> > Signed-off-by: Andrii Anisov <andrii_anisov@xxxxxxxx>
>
> Although I am not completely opposed to this, given the choice I would
> prefer to keep the ASSERTs.
>
>
> Why? What would that prevent? It is an enum, so unless you do an horrible
> hack on the other side, this should always be valid.
>
> But then, why would this be an issue here and not in the tens other place
> where enum is used?
>
>
>
> Given that I would imagine that the ARM C Compiler will also complain
> about many other ASSERTs, I wonder if it wouldn't be better to just
> disable *all* ASSERTs when building with armcc by changing the
> implementation of the ASSERT MACRO.
>
>
> ARM C compiler is valid here and I would not be surprised this will come up
> in Clang and GCC in the future.
>
> If you are worry that the enum is going to grow more than 16 items, then you
> should use a BUILD_BUG_ON.
That would be better actually
> > ---
> > xen/arch/arm/gic.c | 6 ------
> > 1 file changed, 6 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> > index 113655a..58c6141 100644
> > --- a/xen/arch/arm/gic.c
> > +++ b/xen/arch/arm/gic.c
> > @@ -294,8 +294,6 @@ void __init gic_init(void)
> >
> > void send_SGI_mask(const cpumask_t *cpumask, enum gic_sgi sgi)
> > {
> > - ASSERT(sgi < 16); /* There are only 16 SGIs */
> > -
> > gic_hw_ops->send_SGI(sgi, SGI_TARGET_LIST, cpumask);
> > }
> >
> > @@ -306,15 +304,11 @@ void send_SGI_one(unsigned int cpu, enum
> gic_sgi sgi)
> >
> > void send_SGI_self(enum gic_sgi sgi)
> > {
> > - ASSERT(sgi < 16); /* There are only 16 SGIs */
> > -
> > gic_hw_ops->send_SGI(sgi, SGI_TARGET_SELF, NULL);
> > }
> >
> > void send_SGI_allbutself(enum gic_sgi sgi)
> > {
> > - ASSERT(sgi < 16); /* There are only 16 SGIs */
> > -
> > gic_hw_ops->send_SGI(sgi, SGI_TARGET_OTHERS, NULL);
> > }
> >
> > --
> > 2.7.4
> >
>
>
> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |