mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
mei: trace: treat reg parameter as string
The commitafd2627f72("tracing: Check "%s" dereference via the field and not the TP_printk format") forbids to emit event with a plain char* without a wrapper. The reg parameter always passed as static string and wrapper is not strictly required, contrary to dev parameter. Use the string wrapper anyway to check sanity of the reg parameters, store it value independently and prevent internal kernel data leaks. Since some code refactoring has taken place, explicit backporting may be needed for kernels older than 6.10. Cc: stable@vger.kernel.org # v6.11+ Fixes:a0a927d06d("mei: me: add io register tracing") Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Link: https://patch.msgid.link/20260111145125.1754912-1-alexander.usyskin@intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
054e1c0e61
commit
06d5a7afe1
@@ -21,18 +21,18 @@ TRACE_EVENT(mei_reg_read,
|
||||
TP_ARGS(dev, reg, offs, val),
|
||||
TP_STRUCT__entry(
|
||||
__string(dev, dev_name(dev))
|
||||
__field(const char *, reg)
|
||||
__string(reg, reg)
|
||||
__field(u32, offs)
|
||||
__field(u32, val)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__assign_str(dev);
|
||||
__entry->reg = reg;
|
||||
__assign_str(reg);
|
||||
__entry->offs = offs;
|
||||
__entry->val = val;
|
||||
),
|
||||
TP_printk("[%s] read %s:[%#x] = %#x",
|
||||
__get_str(dev), __entry->reg, __entry->offs, __entry->val)
|
||||
__get_str(dev), __get_str(reg), __entry->offs, __entry->val)
|
||||
);
|
||||
|
||||
TRACE_EVENT(mei_reg_write,
|
||||
@@ -40,18 +40,18 @@ TRACE_EVENT(mei_reg_write,
|
||||
TP_ARGS(dev, reg, offs, val),
|
||||
TP_STRUCT__entry(
|
||||
__string(dev, dev_name(dev))
|
||||
__field(const char *, reg)
|
||||
__string(reg, reg)
|
||||
__field(u32, offs)
|
||||
__field(u32, val)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__assign_str(dev);
|
||||
__entry->reg = reg;
|
||||
__assign_str(reg);
|
||||
__entry->offs = offs;
|
||||
__entry->val = val;
|
||||
),
|
||||
TP_printk("[%s] write %s[%#x] = %#x",
|
||||
__get_str(dev), __entry->reg, __entry->offs, __entry->val)
|
||||
__get_str(dev), __get_str(reg), __entry->offs, __entry->val)
|
||||
);
|
||||
|
||||
TRACE_EVENT(mei_pci_cfg_read,
|
||||
@@ -59,18 +59,18 @@ TRACE_EVENT(mei_pci_cfg_read,
|
||||
TP_ARGS(dev, reg, offs, val),
|
||||
TP_STRUCT__entry(
|
||||
__string(dev, dev_name(dev))
|
||||
__field(const char *, reg)
|
||||
__string(reg, reg)
|
||||
__field(u32, offs)
|
||||
__field(u32, val)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__assign_str(dev);
|
||||
__entry->reg = reg;
|
||||
__assign_str(reg);
|
||||
__entry->offs = offs;
|
||||
__entry->val = val;
|
||||
),
|
||||
TP_printk("[%s] pci cfg read %s:[%#x] = %#x",
|
||||
__get_str(dev), __entry->reg, __entry->offs, __entry->val)
|
||||
__get_str(dev), __get_str(reg), __entry->offs, __entry->val)
|
||||
);
|
||||
|
||||
#endif /* _MEI_TRACE_H_ */
|
||||
|
||||
Reference in New Issue
Block a user