It doesn't cause a run-time bug, but these bitfields should be unsigned.
When it's signed ->dl_throttled is set to either 0 or -1, instead of
0 and 1 as expected.  The sched.h file is included into tons of places
so Sparse generates a flood of warnings like this:

./include/linux/sched.h:477:54: error: dubious one-bit signed bitfield

Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com>

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 0f897dfc195e..105eaff8a5e7 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -474,10 +474,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;
+       unsigned int                    dl_throttled      : 1;
+       unsigned int                    dl_boosted        : 1;
+       unsigned int                    dl_yielded        : 1;
+       unsigned int                    dl_non_contending : 1;
 
        /*
         * Bandwidth enforcement timer. Each -deadline task has its

Reply via email to