From: pet...@infradead.org > Sent: 10 August 2020 12:58 > ... > > > --- a/include/linux/entry-common.h > > > +++ b/include/linux/entry-common.h > > > @@ -310,6 +310,7 @@ void irqentry_exit_to_user_mode(struct p > > > #ifndef irqentry_state > > > typedef struct irqentry_state { > > > bool exit_rcu; > > > + bool irqs_enabled; > > > > Instead of passing a structure around, should we look at converting > > "irqentry_state" into a flags field? > > Probably, on x86_64-linux sizeof(_Bool) == 1, so it's two bytes and that > fits perfectly fine in a normal return value, but yeah, this is common > code now and we can't rely on sizeof(_Bool) being sane.
I'd check the arm ABI(s). IIRC 'sizeof bool' changed - but I can't remember which way :-) There are probably other ABI where a 'struct' return value is always implemented as a 'pass by reference' parameter (Probably M68k?). David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)