Commit-ID:  aa5222e92f8000ed3c1c38dddf11c83222aadfb3
Gitweb:     https://git.kernel.org/tip/aa5222e92f8000ed3c1c38dddf11c83222aadfb3
Author:     Dan Carpenter <[email protected]>
AuthorDate: Fri, 13 Oct 2017 10:01:22 +0300
Committer:  Ingo Molnar <[email protected]>
CommitDate: Tue, 21 Nov 2017 09:25:01 +0100

sched/deadline: Don't use dubious signed bitfields

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

Reported-by: Matthew Wilcox <[email protected]>
Reported-by: Xin Long <[email protected]>
Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Luca Abeni <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Cc: luca abeni <[email protected]>
Link: http://lkml.kernel.org/r/20171013070121.dzcncojuj2f4utij@mwanda
Signed-off-by: Ingo Molnar <[email protected]>
---
 include/linux/sched.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index a5dc7c9..21991d6 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;
+       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