lkml.org 
[lkml]   [2020]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 3/3] reboot: refactor and comment the cpu selection code
    Date
    From: Matteo Croce <mcroce@microsoft.com>

    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@microsoft.com>
    ---
    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",
    + cpu, num_possible_cpus());
    + break;
    + }
    + reboot_cpu = cpu;
    + } else
    *mode = REBOOT_SOFT;
    - if (reboot_cpu >= num_possible_cpus()) {
    - pr_err("Ignoring the CPU number in reboot= option. "
    - "CPU %d exceeds possible cpu number %d\n",
    - reboot_cpu, num_possible_cpus());
    - reboot_cpu = 0;
    - break;
    - }
    break;

    case 'g':
    --
    2.28.0
    \
     
     \ /
      Last update: 2020-11-03 22:42    [W:4.095 / U:0.756 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site