Re: [PATCH V4] rcu: change function declaration to bool

From: Josh Triplett
Date: Mon May 11 2015 - 13:08:31 EST


On Mon, May 11, 2015 at 06:12:27PM +0200, Nicholas Mc Guire wrote:
> rcu_cpu_has_callbacks() is declared int. The current declaration was introduced
> in commit c0f4dfd4f90f (rcu: Make RCU_FAST_NO_HZ take advantage of numbered
> callbacks). But it is actually returning bool and as the function description
> states " * Return true if the specified CPU has any callback....", this probably
> should be a bool as all (3) call-sites currently treat it as bool.
>
> Type-checking coccinelle spatches are being used to locate type mismatches
> between function signatures and return values in this case this produced:
> ./kernel/rcu/tree.c:3538 WARNING: return of wrong type
> int != bool,
>
> Patch was compile tested with x86_64_defconfig (implies CONFIG_TREE_RCU=y)
>
> Patch is against 4.1-rc3 (localversion-next is -next-20150511) and fixes
>
> Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>

Seems like a reasonable addition.

Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>

> ---
>
> V4: fix-up to include the origin of the issue being fixed as requeseted by
> Steven Rostedt <rostedt@xxxxxxxxxxx>.
>
> kernel/rcu/tree.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index bcc5943..599550c 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -3516,7 +3516,7 @@ static int rcu_pending(void)
> * non-NULL, store an indication of whether all callbacks are lazy.
> * (If there are no callbacks, all of them are deemed to be lazy.)
> */
> -static int __maybe_unused rcu_cpu_has_callbacks(bool *all_lazy)
> +static bool __maybe_unused rcu_cpu_has_callbacks(bool *all_lazy)
> {
> bool al = true;
> bool hc = false;
> --
> 1.7.10.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/