[PATCHv2] misc: kgdbts: Fix restrict error

From: Laura Abbott
Date: Tue Sep 11 2018 - 13:44:11 EST


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@xxxxxxxxxx>
---
v2: Refactored to move the verbose setting into kgbts_run_tests per
suggestion of Daniel Thompson
---
drivers/misc/kgdbts.c | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
index 6193270e7b3d..de20bdaa148d 100644
--- a/drivers/misc/kgdbts.c
+++ b/drivers/misc/kgdbts.c
@@ -985,6 +985,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);
@@ -1068,13 +1074,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;
}

@@ -1086,9 +1085,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);
--
2.17.1