lkml.org 
[lkml]   [2021]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH linux-next] debug:kdb: fix unsigned int win compared to less than zero
From
Date
Hi,

Le 20/08/2021 à 04:24, jing yangyang a écrit :
> Fix coccicheck warning:
> ./kernel/debug/kdb/kdb_support.c:575:3-10:
> WARNING:Unsigned expression compared with zero p_state < 0
>
> Reported-by: Zeal Robot <zealci@zte.com.cn>
> Signed-off-by: jing yangyang <jing.yangyang@zte.com.cn>
> ---
> kernel/debug/kdb/kdb_support.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/debug/kdb/kdb_support.c b/kernel/debug/kdb/kdb_support.c
> index c605b17..fb30801 100644
> --- a/kernel/debug/kdb/kdb_support.c
> +++ b/kernel/debug/kdb/kdb_support.c
> @@ -560,7 +560,7 @@ unsigned long kdb_task_state_string(const char *s)
> */
> char kdb_task_state_char (const struct task_struct *p)
> {
> - unsigned int p_state;
> + int p_state;

When you make changes in variables which are written in the reverse
Christmas tree style (i.e. long lines at the top, shorter ones below),
you should keep this style. Many people prefer it that way.

Also, should your fix be correct, it is likely a bugfix, and a "Fixes:"
would be needed to help backport.


However, I don't think that your patch is correct here.

Unless I missed something, 'p_state' really needs to be an 'unsigned
int' because 'p->__state' is an 'unsigned int' since 2f064a59a11f
("sched: Change task_struct::state")

My *guess* is that:
(p_state < 0) ? 'U' :
should be turned in:
(p_state & UNRUNNABLE) ? 'U' :

to match the code in 'kdb_task_state_string(()'.

The 'R' case looks also spurious to me, but I've not looked at it deeper.


Should I be right, comment at line 545 ("/* unrunnable is < 0 */") looks
somewhat misleading or useless. I would drop it.


Finally, you have the same kind of code in 'show_task()'
(arch/powerpc/xmon/xmon.c). I also guess that whatever the fix it, it
should be updated the same way here.

CJ

> unsigned long tmp;
> char state;
> int cpu;
>

\
 
 \ /
  Last update: 2021-08-21 07:41    [W:0.053 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site