Skip to content

Commit 06d5a7a

Browse files
ausyskingregkh
authored andcommitted
mei: trace: treat reg parameter as string
The commit afd2627 ("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: a0a927d ("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>
1 parent 054e1c0 commit 06d5a7a

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

drivers/misc/mei/mei-trace.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,56 +21,56 @@ TRACE_EVENT(mei_reg_read,
2121
TP_ARGS(dev, reg, offs, val),
2222
TP_STRUCT__entry(
2323
__string(dev, dev_name(dev))
24-
__field(const char *, reg)
24+
__string(reg, reg)
2525
__field(u32, offs)
2626
__field(u32, val)
2727
),
2828
TP_fast_assign(
2929
__assign_str(dev);
30-
__entry->reg = reg;
30+
__assign_str(reg);
3131
__entry->offs = offs;
3232
__entry->val = val;
3333
),
3434
TP_printk("[%s] read %s:[%#x] = %#x",
35-
__get_str(dev), __entry->reg, __entry->offs, __entry->val)
35+
__get_str(dev), __get_str(reg), __entry->offs, __entry->val)
3636
);
3737

3838
TRACE_EVENT(mei_reg_write,
3939
TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
4040
TP_ARGS(dev, reg, offs, val),
4141
TP_STRUCT__entry(
4242
__string(dev, dev_name(dev))
43-
__field(const char *, reg)
43+
__string(reg, reg)
4444
__field(u32, offs)
4545
__field(u32, val)
4646
),
4747
TP_fast_assign(
4848
__assign_str(dev);
49-
__entry->reg = reg;
49+
__assign_str(reg);
5050
__entry->offs = offs;
5151
__entry->val = val;
5252
),
5353
TP_printk("[%s] write %s[%#x] = %#x",
54-
__get_str(dev), __entry->reg, __entry->offs, __entry->val)
54+
__get_str(dev), __get_str(reg), __entry->offs, __entry->val)
5555
);
5656

5757
TRACE_EVENT(mei_pci_cfg_read,
5858
TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val),
5959
TP_ARGS(dev, reg, offs, val),
6060
TP_STRUCT__entry(
6161
__string(dev, dev_name(dev))
62-
__field(const char *, reg)
62+
__string(reg, reg)
6363
__field(u32, offs)
6464
__field(u32, val)
6565
),
6666
TP_fast_assign(
6767
__assign_str(dev);
68-
__entry->reg = reg;
68+
__assign_str(reg);
6969
__entry->offs = offs;
7070
__entry->val = val;
7171
),
7272
TP_printk("[%s] pci cfg read %s:[%#x] = %#x",
73-
__get_str(dev), __entry->reg, __entry->offs, __entry->val)
73+
__get_str(dev), __get_str(reg), __entry->offs, __entry->val)
7474
);
7575

7676
#endif /* _MEI_TRACE_H_ */

0 commit comments

Comments
 (0)