On Tue, 21 Nov 2017, Jiri Kosina wrote: > From: Jiri Kosina <jkos...@suse.cz> > > Commit > > 799ba82de01e ("sched/deadline: Use C bitfields for the state flags") > > converted state flags into one-bit signed int. Signed one-bit type can be > either 0 or -1, which is going to cause a problem once 1 is assigned to it > and then the value later tested against 1. > > The current code is okay, as all the checks are (non-)zero check, but I > believe that we'd rather be safe than sorry here; remove the fragility by > converting the state flags to bool. > > This also silences annoying sparse complaints about this very issue when > compiling any code that includes sched.h.
What's wrong with making these bitfields 'unsigned int' ? > diff --git a/include/linux/sched.h b/include/linux/sched.h > index a5dc7c98b0a2..b19fa1b96726 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -473,10 +473,10 @@ struct sched_dl_entity { > * conditions between the inactive timer handler and the wakeup > * code. > */ > - int dl_throttled : 1; > - int dl_boosted : 1; > - int dl_yielded : 1; > - int dl_non_contending : 1; > + bool dl_throttled; > + bool dl_boosted; > + bool dl_yielded; > + bool dl_non_contending; Thanks, tglx