misc: kgdbts: Fix restrict error
authorLaura Abbott <labbott@redhat.com>
Tue, 11 Sep 2018 17:44:03 +0000 (10:44 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 17:00:39 +0000 (18:00 +0100)
[ Upstream commit fa0218ef733e6f247a1a3986e3eb12460064ac77 ]

kgdbts current fails when compiled with restrict:

drivers/misc/kgdbts.c: In function ‘configure_kgdbts’:
drivers/misc/kgdbts.c:1070:2: error: ‘strcpy’ source argument is the same as destination [-Werror=restrict]
  strcpy(config, opt);
  ^~~~~~~~~~~~~~~~~~~

As the error says, config is being used in both the source and destination.
Refactor the code to avoid the extra copy and put the parsing closer to
the actual location.

Signed-off-by: Laura Abbott <labbott@redhat.com>
Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/misc/kgdbts.c

index 94cbc5c98cae61e15e1830b5a8fca1f3b5a8091c..05824ff6b91682104668951556ff895228de1026 100644 (file)
@@ -981,6 +981,12 @@ static void kgdbts_run_tests(void)
        int nmi_sleep = 0;
        int i;
 
+       verbose = 0;
+       if (strstr(config, "V1"))
+               verbose = 1;
+       if (strstr(config, "V2"))
+               verbose = 2;
+
        ptr = strchr(config, 'F');
        if (ptr)
                fork_test = simple_strtol(ptr + 1, NULL, 10);
@@ -1064,13 +1070,6 @@ static int kgdbts_option_setup(char *opt)
                return -ENOSPC;
        }
        strcpy(config, opt);
-
-       verbose = 0;
-       if (strstr(config, "V1"))
-               verbose = 1;
-       if (strstr(config, "V2"))
-               verbose = 2;
-
        return 0;
 }
 
@@ -1082,9 +1081,6 @@ static int configure_kgdbts(void)
 
        if (!strlen(config) || isspace(config[0]))
                goto noconfig;
-       err = kgdbts_option_setup(config);
-       if (err)
-               goto noconfig;
 
        final_ack = 0;
        run_plant_and_detach_test(1);