Pull char / misc driver fixes from Greg KH: "Here are a number of small driver fixes for 5.9-rc5 Included in here are: - habanalabs driver fixes - interconnect driver fixes - soundwire driver fixes - dyndbg fixes for reported issues, and then reverts to fix it all up to a sane state. - phy driver fixes All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: Revert "dyndbg: accept query terms like file=bar and module=foo" Revert "dyndbg: fix problem parsing format="foo bar"" scripts/tags.sh: exclude tools directory from tags generation video: fbdev: fix OOB read in vga_8planes_imageblit() dyndbg: fix problem parsing format="foo bar" dyndbg: refine export, rename to dynamic_debug_exec_queries() dyndbg: give %3u width in pr-format, cosmetic only interconnect: qcom: Fix small BW votes being truncated to zero soundwire: fix double free of dangling pointer interconnect: Show bandwidth for disabled paths as zero in debugfs habanalabs: fix report of RAZWI initiator coordinates habanalabs: prevent user buff overflow phy: omap-usb2-phy: disable PHY charger detect phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init soundwire: bus: fix typo in comment on INTSTAT registers phy: qualcomm: fix return value check in qcom_ipq806x_usb_phy_probe() phy: qualcomm: fix platform_no_drv_owner.cocci warnings
Showing the changes to include/linux (1 of 15 files). Show all
Unified · Split
| @@ -49,6 +49,10 @@ struct _ddebug { · 48 unmodified lines | |||
| 49 | 49 | ||
| 50 | 50 | ||
| 51 | #if defined(CONFIG_DYNAMIC_DEBUG_CORE) | 51 | #if defined(CONFIG_DYNAMIC_DEBUG_CORE) |
| 52 | |||
| 53 | /* exported for module authors to exercise >control */ | ||
| 54 | int dynamic_debug_exec_queries(const char *query, const char *modname); | ||
| 55 | |||
| 52 | int ddebug_add_module(struct _ddebug *tab, unsigned int n, | 56 | int ddebug_add_module(struct _ddebug *tab, unsigned int n, |
| 53 | const char *modname); | 57 | const char *modname); |
| 54 | extern int ddebug_remove_module(const char *mod_name); | 58 | extern int ddebug_remove_module(const char *mod_name); |
| @@ -105,7 +109,7 @@ void __dynamic_ibdev_dbg(struct _ddebug *descriptor, · 50 unmodified lines | |||
| 105 | static_branch_unlikely(&descriptor.key.dd_key_false) | 109 | static_branch_unlikely(&descriptor.key.dd_key_false) |
| 106 | #endif | 110 | #endif |
| 107 | 111 | ||
| 108 | #else /* !HAVE_JUMP_LABEL */ | 112 | #else /* !CONFIG_JUMP_LABEL */ |
| 109 | 113 | ||
| 110 | #define _DPRINTK_KEY_INIT | 114 | #define _DPRINTK_KEY_INIT |
| 111 | 115 | ||
| @@ -117,7 +121,7 @@ void __dynamic_ibdev_dbg(struct _ddebug *descriptor, · 5 unmodified lines | |||
| 117 | unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) | 121 | unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) |
| 118 | #endif | 122 | #endif |
| 119 | 123 | ||
| 120 | #endif | 124 | #endif /* CONFIG_JUMP_LABEL */ |
| 121 | 125 | ||
| 122 | #define __dynamic_func_call(id, fmt, func, ...) do { \ | 126 | #define __dynamic_func_call(id, fmt, func, ...) do { \ |
| 123 | DEFINE_DYNAMIC_DEBUG_METADATA(id, fmt); \ | 127 | DEFINE_DYNAMIC_DEBUG_METADATA(id, fmt); \ |
| @@ -172,10 +176,11 @@ void __dynamic_ibdev_dbg(struct _ddebug *descriptor, · 48 unmodified lines | |||
| 172 | KERN_DEBUG, prefix_str, prefix_type, \ | 176 | KERN_DEBUG, prefix_str, prefix_type, \ |
| 173 | rowsize, groupsize, buf, len, ascii) | 177 | rowsize, groupsize, buf, len, ascii) |
| 174 | 178 | ||
| 175 | #else | 179 | #else /* !CONFIG_DYNAMIC_DEBUG_CORE */ |
| 176 | 180 | ||
| 177 | #include <linux/string.h> | 181 | #include <linux/string.h> |
| 178 | #include <linux/errno.h> | 182 | #include <linux/errno.h> |
| 183 | #include <linux/printk.h> | ||
| 179 | 184 | ||
| 180 | static inline int ddebug_add_module(struct _ddebug *tab, unsigned int n, | 185 | static inline int ddebug_add_module(struct _ddebug *tab, unsigned int n, |
| 181 | const char *modname) | 186 | const char *modname) |
| @@ -210,6 +215,13 @@ static inline int ddebug_dyndbg_module_param_cb(char *param, char *val, · 28 unmodified lines | |||
| 210 | print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, \ | 215 | print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, \ |
| 211 | rowsize, groupsize, buf, len, ascii); \ | 216 | rowsize, groupsize, buf, len, ascii); \ |
| 212 | } while (0) | 217 | } while (0) |
| 213 | #endif | 218 | |
| 219 | static inline int dynamic_debug_exec_queries(const char *query, const char *modname) | ||
| 220 | { | ||
| 221 | pr_warn("kernel not built with CONFIG_DYNAMIC_DEBUG_CORE\n"); | ||
| 222 | return 0; | ||
| 223 | } | ||
| 224 | |||
| 225 | #endif /* !CONFIG_DYNAMIC_DEBUG_CORE */ | ||
| 214 | 226 | ||
| 215 | #endif | 227 | #endif |