On Thu, 2015-12-10 at 11:07 +0100, Sascha Hauer wrote: > gcc5 warns about using flags uninitialized in spin_lock_irqsave, > although it could look into the static inline spin_lock_irqsave > implementation and see it's not used at all. An empty define instead > of the static inline wrapper would lead to a "unused variable" warning. > Let's create a macro and fake some usage of the flags variable. This > probably helps until gcc6 is out. > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > --- > include/linux/barebox-wrapper.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/barebox-wrapper.h b/include/linux/barebox-wrapper.h > index 3859185..5fe7971 100644 > --- a/include/linux/barebox-wrapper.h > +++ b/include/linux/barebox-wrapper.h > @@ -39,8 +39,8 @@ typedef int spinlock_t; > #define spin_lock_init(...) > #define spin_lock(...) > #define spin_unlock(...) > -static inline void spin_lock_irqsave(spinlock_t *lock, unsigned long flags) {} > -static inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) {} > +#define spin_lock_irqsave(lock, flags) do { flags = 0; } while (0) > +#define spin_unlock_irqrestore(lock, flags) do { flags = flags; } while (0) It's more complex, but one would still get compiler type checking of the arguments if one did: static inline void _slis(spinlock_t *lock, unsigned long flags) {} static inline void _slir(spinlock_t *lock, unsigned long flags) {} #define spin_lock_irqsave(lock, flags) _slis(lock, flags = 0) #define spin_lock_irqrestore(lock, flags) _slir(lock, flags = flags) It think that would make gcc happy too? _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox