Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f657fd21 authored by Joe Perches's avatar Joe Perches Committed by Greg Kroah-Hartman
Browse files

dynamic_debug: Fix vpr_<foo> logging styles



vpr_info_dq should be a function and vpr_info should have
a do {} while (0)

Add missing newlines to pr_<level>s.

Miscellaneous neatening too.
braces, coalescing formats, alignments, etc...

Signed-off-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarJason Baron <jbaron@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a8826eeb
Loading
Loading
Loading
Loading
+62 −56
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ struct ddebug_iter {

static DEFINE_MUTEX(ddebug_lock);
static LIST_HEAD(ddebug_tables);
static int verbose = 0;
static int verbose;
module_param(verbose, int, 0644);

/* Return the path relative to source root */
@@ -101,23 +101,31 @@ static char *ddebug_describe_flags(struct _ddebug *dp, char *buf,
}

#define vpr_info(fmt, ...)					\
	if (verbose) do { pr_info(fmt, ##__VA_ARGS__); } while (0)

#define vpr_info_dq(q, msg)					\
do {								\
	/* trim last char off format print */			\
	vpr_info("%s: func=\"%s\" file=\"%s\" "			\
		"module=\"%s\" format=\"%.*s\" "		\
		"lineno=%u-%u",					\
		msg,						\
		q->function ? q->function : "",			\
		q->filename ? q->filename : "",			\
		q->module ? q->module : "",			\
		(int)(q->format ? strlen(q->format) - 1 : 0),	\
		q->format ? q->format : "",			\
		q->first_lineno, q->last_lineno);		\
	if (verbose)						\
		pr_info(fmt, ##__VA_ARGS__);			\
} while (0)

static void vpr_info_dq(const struct ddebug_query *query, const char *msg)
{
	/* trim any trailing newlines */
	int fmtlen = 0;

	if (query->format) {
		fmtlen = strlen(query->format);
		while (fmtlen && query->format[fmtlen - 1] == '\n')
			fmtlen--;
	}

	vpr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" lineno=%u-%u\n",
		 msg,
		 query->function ? query->function : "",
		 query->filename ? query->filename : "",
		 query->module ? query->module : "",
		 fmtlen, query->format ? query->format : "",
		 query->first_lineno, query->last_lineno);
}

/*
 * Search the tables for _ddebug's which match the given `query' and
 * apply the `flags' and `mask' to them.  Returns number of matching
@@ -288,9 +296,9 @@ static char *unescape(char *str)
			} else if (isodigit(in[1]) &&
				   isodigit(in[2]) &&
				   isodigit(in[3])) {
				*out++ = ((in[1] - '0')<<6) |
				*out++ = (((in[1] - '0') << 6) |
					  ((in[2] - '0') << 3) |
				          (in[3] - '0');
					  (in[3] - '0'));
				in += 4;
				continue;
			}
@@ -308,7 +316,7 @@ static int check_set(const char **dest, char *src, char *name)

	if (*dest) {
		rc = -EINVAL;
		pr_err("match-spec:%s val:%s overridden by %s",
		pr_err("match-spec:%s val:%s overridden by %s\n",
		       name, *dest, src);
	}
	*dest = src;
@@ -346,16 +354,16 @@ static int ddebug_parse_query(char *words[], int nwords,
		query->module = modname;

	for (i = 0; i < nwords; i += 2) {
		if (!strcmp(words[i], "func"))
		if (!strcmp(words[i], "func")) {
			rc = check_set(&query->function, words[i+1], "func");
		else if (!strcmp(words[i], "file"))
		} else if (!strcmp(words[i], "file")) {
			rc = check_set(&query->filename, words[i+1], "file");
		else if (!strcmp(words[i], "module"))
		} else if (!strcmp(words[i], "module")) {
			rc = check_set(&query->module, words[i+1], "module");
		else if (!strcmp(words[i], "format"))
		} else if (!strcmp(words[i], "format")) {
			rc = check_set(&query->format, unescape(words[i+1]),
				       "format");
		else if (!strcmp(words[i], "line")) {
		} else if (!strcmp(words[i], "line")) {
			char *first = words[i+1];
			char *last = strchr(first, '-');
			if (query->first_lineno || query->last_lineno) {
@@ -459,7 +467,7 @@ static int ddebug_exec_query(char *query_string, const char *modname)

	/* actually go and implement the change */
	nfound = ddebug_change(&query, flags, mask);
	vpr_info_dq((&query), (nfound) ? "applied" : "no-match");
	vpr_info_dq(&query, nfound ? "applied" : "no-match");

	return nfound;
}
@@ -488,8 +496,9 @@ static int ddebug_exec_queries(char *query, const char *modname)
		if (rc < 0) {
			errs++;
			exitcode = rc;
		} else
		} else {
			nfound += rc;
		}
		i++;
	}
	vpr_info("processed %d queries, with %d matches, %d errs\n",
@@ -1002,8 +1011,7 @@ static int __init dynamic_debug_init(void)
	int verbose_bytes = 0;

	if (__start___verbose == __stop___verbose) {
		pr_warn("_ddebug table is empty in a "
			"CONFIG_DYNAMIC_DEBUG build");
		pr_warn("_ddebug table is empty in a CONFIG_DYNAMIC_DEBUG build\n");
		return 1;
	}
	iter = __start___verbose;
@@ -1030,18 +1038,16 @@ static int __init dynamic_debug_init(void)
		goto out_err;

	ddebug_init_success = 1;
	vpr_info("%d modules, %d entries and %d bytes in ddebug tables,"
		" %d bytes in (readonly) verbose section\n",
	vpr_info("%d modules, %d entries and %d bytes in ddebug tables, %d bytes in (readonly) verbose section\n",
		 modct, entries, (int)(modct * sizeof(struct ddebug_table)),
		 verbose_bytes + (int)(__stop___verbose - __start___verbose));

	/* apply ddebug_query boot param, dont unload tables on err */
	if (ddebug_setup_string[0] != '\0') {
		pr_warn("ddebug_query param name is deprecated,"
			" change it to dyndbg\n");
		pr_warn("ddebug_query param name is deprecated, change it to dyndbg\n");
		ret = ddebug_exec_queries(ddebug_setup_string, NULL);
		if (ret < 0)
			pr_warn("Invalid ddebug boot param %s",
			pr_warn("Invalid ddebug boot param %s\n",
				ddebug_setup_string);
		else
			pr_info("%d changes by ddebug_query\n", ret);