2017-10-13 08:36:59

by luca abeni

[permalink] [raw]
Subject: Re: [PATCH] sched/deadline: Don't use dubious signed bitfields

Hi,

On Fri, 13 Oct 2017 10:01:22 +0300
Dan Carpenter <[email protected]> wrote:

> 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 <[email protected]>

I did not notice any issue when testing, but if "unsigned int" is the
common practice for bitfields, I agree with the change.

Reviewed-by: Luca Abeni <[email protected]>


Thanks,
Luca
>
> 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


From 1581124861000027433@xxx Fri Oct 13 07:02:50 +0000 2017
X-GM-THRID: 1581124861000027433
X-Gmail-Labels: Inbox,Category Forums