diff options
Diffstat (limited to 'lib/dynamic_debug.c')
| -rw-r--r-- | lib/dynamic_debug.c | 35 | 
1 files changed, 20 insertions, 15 deletions
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 5a7bacc2e90..4be55d8d76b 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -871,23 +871,28 @@ static int __init dynamic_debug_init(void)  	int ret = 0;  	int n = 0; -	if (__start___verbose != __stop___verbose) { -		iter = __start___verbose; -		modname = iter->modname; -		iter_start = iter; -		for (; iter < __stop___verbose; iter++) { -			if (strcmp(modname, iter->modname)) { -				ret = ddebug_add_module(iter_start, n, modname); -				if (ret) -					goto out_free; -				n = 0; -				modname = iter->modname; -				iter_start = iter; -			} -			n++; +	if (__start___verbose == __stop___verbose) { +		pr_warn("_ddebug table is empty in a " +			"CONFIG_DYNAMIC_DEBUG build"); +		return 1; +	} +	iter = __start___verbose; +	modname = iter->modname; +	iter_start = iter; +	for (; iter < __stop___verbose; iter++) { +		if (strcmp(modname, iter->modname)) { +			ret = ddebug_add_module(iter_start, n, modname); +			if (ret) +				goto out_free; +			n = 0; +			modname = iter->modname; +			iter_start = iter;  		} -		ret = ddebug_add_module(iter_start, n, modname); +		n++;  	} +	ret = ddebug_add_module(iter_start, n, modname); +	if (ret) +		goto out_free;  	/* ddebug_query boot param got passed -> set it up */  	if (ddebug_setup_string[0] != '\0') {  |