mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-06 20:53:54 +08:00
Revert "dyndbg: fix problem parsing format="foo bar""
This reverts commit42f07816ac
as it still causes problems. It will be resolved later, let's revert it so we can also revert the original patch this was supposed to be helping with. Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org> Fixes:42f07816ac
("dyndbg: fix problem parsing format="foo bar"") Cc: Jim Cromie <jim.cromie@gmail.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
162343a876
commit
7f6e1f3072
@ -237,7 +237,6 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords)
|
|||||||
{
|
{
|
||||||
int nwords = 0;
|
int nwords = 0;
|
||||||
|
|
||||||
vpr_info("entry, buf:'%s'\n", buf);
|
|
||||||
while (*buf) {
|
while (*buf) {
|
||||||
char *end;
|
char *end;
|
||||||
|
|
||||||
@ -248,8 +247,6 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords)
|
|||||||
if (*buf == '#')
|
if (*buf == '#')
|
||||||
break; /* token starts comment, skip rest of line */
|
break; /* token starts comment, skip rest of line */
|
||||||
|
|
||||||
vpr_info("start-of-word:%d '%s'\n", nwords, buf);
|
|
||||||
|
|
||||||
/* find `end' of word, whitespace separated or quoted */
|
/* find `end' of word, whitespace separated or quoted */
|
||||||
if (*buf == '"' || *buf == '\'') {
|
if (*buf == '"' || *buf == '\'') {
|
||||||
int quote = *buf++;
|
int quote = *buf++;
|
||||||
@ -260,9 +257,7 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords)
|
|||||||
return -EINVAL; /* unclosed quote */
|
return -EINVAL; /* unclosed quote */
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (end = buf;
|
for (end = buf; *end && !isspace(*end); end++)
|
||||||
*end && *end != '=' && !isspace(*end);
|
|
||||||
end++)
|
|
||||||
;
|
;
|
||||||
BUG_ON(end == buf);
|
BUG_ON(end == buf);
|
||||||
}
|
}
|
||||||
@ -378,21 +373,30 @@ static int ddebug_parse_query(char *words[], int nwords,
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
char *fline;
|
char *fline;
|
||||||
|
char *keyword, *arg;
|
||||||
|
|
||||||
if (nwords % 2 != 0) {
|
if (modname)
|
||||||
pr_err("expecting pairs of match-spec <value>\n");
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
if (modname) {
|
|
||||||
/* support $modname.dyndbg=<multiple queries> */
|
/* support $modname.dyndbg=<multiple queries> */
|
||||||
vpr_info("module:%s queries:'%s'\n", modname);
|
|
||||||
query->module = modname;
|
query->module = modname;
|
||||||
}
|
|
||||||
for (i = 0; i < nwords; i += 2) {
|
|
||||||
char *keyword = words[i];
|
|
||||||
char *arg = words[i+1];
|
|
||||||
|
|
||||||
vpr_info("keyword:'%s' value:'%s'\n", keyword, arg);
|
for (i = 0; i < nwords; i++) {
|
||||||
|
/* accept keyword=arg */
|
||||||
|
vpr_info("%d w:%s\n", i, words[i]);
|
||||||
|
|
||||||
|
keyword = words[i];
|
||||||
|
arg = strchr(keyword, '=');
|
||||||
|
if (arg) {
|
||||||
|
*arg++ = '\0';
|
||||||
|
} else {
|
||||||
|
i++; /* next word is arg */
|
||||||
|
if (!(i < nwords)) {
|
||||||
|
pr_err("missing arg to keyword: %s\n", keyword);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
arg = words[i];
|
||||||
|
}
|
||||||
|
vpr_info("%d key:%s arg:%s\n", i, keyword, arg);
|
||||||
|
|
||||||
if (!strcmp(keyword, "func")) {
|
if (!strcmp(keyword, "func")) {
|
||||||
rc = check_set(&query->function, arg, "func");
|
rc = check_set(&query->function, arg, "func");
|
||||||
} else if (!strcmp(keyword, "file")) {
|
} else if (!strcmp(keyword, "file")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user