Re: [PATCH v3 3/3] reboot: refactor and comment the cpu selection code
From: Petr Mladek
Date: Thu Nov 05 2020 - 13:09:57 EST
On Tue 2020-11-03 22:40:25, Matteo Croce wrote:
> From: Matteo Croce <mcroce@xxxxxxxxxxxxx>
>
> Small improvements to the code, without changing the way it works:
> - use a local variable, to avoid a small time lapse where reboot_cpu
> can have an invalid value
> - comment the code which is not easy to understand at a glance
> - merge two identical code blocks into one
> - replace pointer arithmetics with equivalent array syntax
>
> Signed-off-by: Matteo Croce <mcroce@xxxxxxxxxxxxx>
> ---
> kernel/reboot.c | 30 +++++++++++++++++-------------
> 1 file changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/kernel/reboot.c b/kernel/reboot.c
> index af6f23d8bea1..dd483bde932b 100644
> --- a/kernel/reboot.c
> +++ b/kernel/reboot.c
> @@ -551,20 +551,24 @@ static int __init reboot_setup(char *str)
> break;
>
> case 's':
> - if (isdigit(*(str+1)))
> - reboot_cpu = simple_strtoul(str+1, NULL, 0);
> - else if (str[1] == 'm' && str[2] == 'p' &&
> - isdigit(*(str+3)))
> - reboot_cpu = simple_strtoul(str+3, NULL, 0);
> - else
> + /*
> + * reboot_cpu is s[mp]#### with #### being the processor
> + * to be used for rebooting. Skip 's' or 'smp' prefix.
> + */
> + str += str[1] == 'm' && str[2] == 'p' ? 3 : 1;
> +
> + if (isdigit(str[0])) {
> + int cpu = simple_strtoul(str, NULL, 0);
> +
> + if (cpu >= num_possible_cpus()) {
> + pr_err("Ignoring the CPU number in reboot= option. "
> + "CPU %d exceeds possible cpu number %d\n",
Same here. I am not sure if Andrew would like to get this on a single
line.
In both cases:
Reviewed-by: Petr Mladek <pmladek@xxxxxxxx>
Best Regards,
Petr