On Mon, 2020-08-24 at 12:54 -0600, Jim Cromie wrote: > commit 59cf47e7df31 dyndbg: export ddebug_exec_queries > left a few configs broken, fix them with ifdef-stubs. > > Rename the export to dynamic_debug_exec_queries(). This is a more > canonical function name, instead of exposing the 'ddebug' internal > name prefix. Do this now, before export hits v5.9.0 > > Implement as new function wrapping ddebug_exec_queries(now static > again), which copies the query-string, preserving ddebug_exec_queries' > in-place parsing, while allowing users to pass "const strings". [] > diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h [] > @@ -210,6 +215,13 @@ static inline int ddebug_dyndbg_module_param_cb(char > *param, char *val, > print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, \ > rowsize, groupsize, buf, len, ascii); \ > } while (0) > -#endif > + > +static inline int dynamic_debug_exec_queries(const char *query, const char > *modname) > +{ > + printk(KERN_WARNING "kernel not built w CONFIG_DYNAMIC_DEBUG_CORE\n");
pr_warn and w should be with > diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c [] > @@ -557,7 +557,27 @@ int ddebug_exec_queries(char *query, const char *modname) > return exitcode; > return nfound; > } > -EXPORT_SYMBOL_GPL(ddebug_exec_queries); > + > +/** > + * dynamic_debug_exec_queries - apply changes to selected dynamic-debug > prints > + * @query: string with callsite-selectors +enablement+decorations > + * @modname: string containing module name > + * > + * This implements the >/proc/dynamic_debug/control reader, allowing > + * module authors to modify their dynamic-debug callsites. The modname > + * is canonically struct module.mod_name, but can also be null or a > + * module-wildcard, for example: "drm*". > + */ > +int dynamic_debug_exec_queries(const char *query, const char *modname) > +{ > + char *qry = kmalloc(PAGE_SIZE, GFP_KERNEL); > + int rc; > + strncpy(qry, query, PAGE_SIZE); kstrndup?