* [PATCH] net: hns3: tracing: fix hclgevf trace event strings
@ 2024-03-13 13:34 Steven Rostedt
2024-03-14 11:48 ` Jijie Shao
2024-03-14 14:39 ` Paolo Abeni
0 siblings, 2 replies; 5+ messages in thread
From: Steven Rostedt @ 2024-03-13 13:34 UTC (permalink / raw)
To: LKML, Linux Trace Kernel, netdev
Cc: Yisen Zhuang, Salil Mehta, Jijie Shao, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Yufeng Mo,
Huazhong Tan
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
[
Note, I need to take this patch through my tree, so I'm looking for acks.
This causes the build to fail when I add the __assign_str() check, which
I was about to push to Linus, but it breaks allmodconfig due to this error.
]
The __string() and __assign_str() helper macros of the TRACE_EVENT() macro
are going through some optimizations where only the source string of
__string() will be used and the __assign_str() source will be ignored and
later removed.
To make sure that there's no issues, a new check is added between the
__string() src argument and the __assign_str() src argument that does a
strcmp() to make sure they are the same string.
The hclgevf trace events have:
__assign_str(devname, &hdev->nic.kinfo.netdev->name);
Which triggers the warning:
hclgevf_trace.h:34:39: error: passing argument 1 of ‘strcmp’ from incompatible pointer type [-Werror=incompatible-pointer-types]
34 | __assign_str(devname, &hdev->nic.kinfo.netdev->name);
[..]
arch/x86/include/asm/string_64.h:75:24: note: expected ‘const char *’ but argument is of type ‘char (*)[16]’
75 | int strcmp(const char *cs, const char *ct);
| ~~~~~~~~~~~~^~
Because __assign_str() now has:
WARN_ON_ONCE(__builtin_constant_p(src) ? \
strcmp((src), __data_offsets.dst##_ptr_) : \
(src) != __data_offsets.dst##_ptr_); \
The problem is the '&' on hdev->nic.kinfo.netdev->name. That's because
that name is:
char name[IFNAMSIZ]
Where passing an address '&' of a char array is not compatible with strcmp().
The '&' is not necessary, remove it.
Fixes: d8355240cf8fb ("net: hns3: add trace event support for PF/VF mailbox")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 8 ++++----
.../net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
index 8510b88d4982..f3cd5a376eca 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
@@ -24,7 +24,7 @@ TRACE_EVENT(hclge_pf_mbx_get,
__field(u8, code)
__field(u8, subcode)
__string(pciname, pci_name(hdev->pdev))
- __string(devname, &hdev->vport[0].nic.kinfo.netdev->name)
+ __string(devname, hdev->vport[0].nic.kinfo.netdev->name)
__array(u32, mbx_data, PF_GET_MBX_LEN)
),
@@ -33,7 +33,7 @@ TRACE_EVENT(hclge_pf_mbx_get,
__entry->code = req->msg.code;
__entry->subcode = req->msg.subcode;
__assign_str(pciname, pci_name(hdev->pdev));
- __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name);
+ __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name);
memcpy(__entry->mbx_data, req,
sizeof(struct hclge_mbx_vf_to_pf_cmd));
),
@@ -56,7 +56,7 @@ TRACE_EVENT(hclge_pf_mbx_send,
__field(u8, vfid)
__field(u16, code)
__string(pciname, pci_name(hdev->pdev))
- __string(devname, &hdev->vport[0].nic.kinfo.netdev->name)
+ __string(devname, hdev->vport[0].nic.kinfo.netdev->name)
__array(u32, mbx_data, PF_SEND_MBX_LEN)
),
@@ -64,7 +64,7 @@ TRACE_EVENT(hclge_pf_mbx_send,
__entry->vfid = req->dest_vfid;
__entry->code = le16_to_cpu(req->msg.code);
__assign_str(pciname, pci_name(hdev->pdev));
- __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name);
+ __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name);
memcpy(__entry->mbx_data, req,
sizeof(struct hclge_mbx_pf_to_vf_cmd));
),
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
index 5d4895bb57a1..b259e95dd53c 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
@@ -23,7 +23,7 @@ TRACE_EVENT(hclge_vf_mbx_get,
__field(u8, vfid)
__field(u16, code)
__string(pciname, pci_name(hdev->pdev))
- __string(devname, &hdev->nic.kinfo.netdev->name)
+ __string(devname, hdev->nic.kinfo.netdev->name)
__array(u32, mbx_data, VF_GET_MBX_LEN)
),
@@ -31,7 +31,7 @@ TRACE_EVENT(hclge_vf_mbx_get,
__entry->vfid = req->dest_vfid;
__entry->code = le16_to_cpu(req->msg.code);
__assign_str(pciname, pci_name(hdev->pdev));
- __assign_str(devname, &hdev->nic.kinfo.netdev->name);
+ __assign_str(devname, hdev->nic.kinfo.netdev->name);
memcpy(__entry->mbx_data, req,
sizeof(struct hclge_mbx_pf_to_vf_cmd));
),
@@ -55,7 +55,7 @@ TRACE_EVENT(hclge_vf_mbx_send,
__field(u8, code)
__field(u8, subcode)
__string(pciname, pci_name(hdev->pdev))
- __string(devname, &hdev->nic.kinfo.netdev->name)
+ __string(devname, hdev->nic.kinfo.netdev->name)
__array(u32, mbx_data, VF_SEND_MBX_LEN)
),
@@ -64,7 +64,7 @@ TRACE_EVENT(hclge_vf_mbx_send,
__entry->code = req->msg.code;
__entry->subcode = req->msg.subcode;
__assign_str(pciname, pci_name(hdev->pdev));
- __assign_str(devname, &hdev->nic.kinfo.netdev->name);
+ __assign_str(devname, hdev->nic.kinfo.netdev->name);
memcpy(__entry->mbx_data, req,
sizeof(struct hclge_mbx_vf_to_pf_cmd));
),
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] net: hns3: tracing: fix hclgevf trace event strings
2024-03-13 13:34 [PATCH] net: hns3: tracing: fix hclgevf trace event strings Steven Rostedt
@ 2024-03-14 11:48 ` Jijie Shao
2024-03-14 14:39 ` Paolo Abeni
1 sibling, 0 replies; 5+ messages in thread
From: Jijie Shao @ 2024-03-14 11:48 UTC (permalink / raw)
To: Steven Rostedt, LKML, Linux Trace Kernel, netdev
Cc: shaojijie, Yisen Zhuang, Salil Mehta, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Yufeng Mo,
Huazhong Tan
Reviewed-by: Jijie Shao<shaojijie@huawei.com>
on 2024/3/13 21:34, Steven Rostedt wrote:
> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
>
> [
> Note, I need to take this patch through my tree, so I'm looking for acks.
> This causes the build to fail when I add the __assign_str() check, which
> I was about to push to Linus, but it breaks allmodconfig due to this error.
> ]
>
> The __string() and __assign_str() helper macros of the TRACE_EVENT() macro
> are going through some optimizations where only the source string of
> __string() will be used and the __assign_str() source will be ignored and
> later removed.
>
> To make sure that there's no issues, a new check is added between the
> __string() src argument and the __assign_str() src argument that does a
> strcmp() to make sure they are the same string.
>
> The hclgevf trace events have:
>
> __assign_str(devname, &hdev->nic.kinfo.netdev->name);
>
> Which triggers the warning:
>
> hclgevf_trace.h:34:39: error: passing argument 1 of ‘strcmp’ from incompatible pointer type [-Werror=incompatible-pointer-types]
> 34 | __assign_str(devname, &hdev->nic.kinfo.netdev->name);
> [..]
> arch/x86/include/asm/string_64.h:75:24: note: expected ‘const char *’ but argument is of type ‘char (*)[16]’
> 75 | int strcmp(const char *cs, const char *ct);
> | ~~~~~~~~~~~~^~
>
>
> Because __assign_str() now has:
>
> WARN_ON_ONCE(__builtin_constant_p(src) ? \
> strcmp((src), __data_offsets.dst##_ptr_) : \
> (src) != __data_offsets.dst##_ptr_); \
>
> The problem is the '&' on hdev->nic.kinfo.netdev->name. That's because
> that name is:
>
> char name[IFNAMSIZ]
>
> Where passing an address '&' of a char array is not compatible with strcmp().
>
> The '&' is not necessary, remove it.
>
> Fixes: d8355240cf8fb ("net: hns3: add trace event support for PF/VF mailbox")
> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> ---
> drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 8 ++++----
> .../net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 8 ++++----
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
> index 8510b88d4982..f3cd5a376eca 100644
> --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
> @@ -24,7 +24,7 @@ TRACE_EVENT(hclge_pf_mbx_get,
> __field(u8, code)
> __field(u8, subcode)
> __string(pciname, pci_name(hdev->pdev))
> - __string(devname, &hdev->vport[0].nic.kinfo.netdev->name)
> + __string(devname, hdev->vport[0].nic.kinfo.netdev->name)
> __array(u32, mbx_data, PF_GET_MBX_LEN)
> ),
>
> @@ -33,7 +33,7 @@ TRACE_EVENT(hclge_pf_mbx_get,
> __entry->code = req->msg.code;
> __entry->subcode = req->msg.subcode;
> __assign_str(pciname, pci_name(hdev->pdev));
> - __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name);
> + __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name);
> memcpy(__entry->mbx_data, req,
> sizeof(struct hclge_mbx_vf_to_pf_cmd));
> ),
> @@ -56,7 +56,7 @@ TRACE_EVENT(hclge_pf_mbx_send,
> __field(u8, vfid)
> __field(u16, code)
> __string(pciname, pci_name(hdev->pdev))
> - __string(devname, &hdev->vport[0].nic.kinfo.netdev->name)
> + __string(devname, hdev->vport[0].nic.kinfo.netdev->name)
> __array(u32, mbx_data, PF_SEND_MBX_LEN)
> ),
>
> @@ -64,7 +64,7 @@ TRACE_EVENT(hclge_pf_mbx_send,
> __entry->vfid = req->dest_vfid;
> __entry->code = le16_to_cpu(req->msg.code);
> __assign_str(pciname, pci_name(hdev->pdev));
> - __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name);
> + __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name);
> memcpy(__entry->mbx_data, req,
> sizeof(struct hclge_mbx_pf_to_vf_cmd));
> ),
> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
> index 5d4895bb57a1..b259e95dd53c 100644
> --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
> @@ -23,7 +23,7 @@ TRACE_EVENT(hclge_vf_mbx_get,
> __field(u8, vfid)
> __field(u16, code)
> __string(pciname, pci_name(hdev->pdev))
> - __string(devname, &hdev->nic.kinfo.netdev->name)
> + __string(devname, hdev->nic.kinfo.netdev->name)
> __array(u32, mbx_data, VF_GET_MBX_LEN)
> ),
>
> @@ -31,7 +31,7 @@ TRACE_EVENT(hclge_vf_mbx_get,
> __entry->vfid = req->dest_vfid;
> __entry->code = le16_to_cpu(req->msg.code);
> __assign_str(pciname, pci_name(hdev->pdev));
> - __assign_str(devname, &hdev->nic.kinfo.netdev->name);
> + __assign_str(devname, hdev->nic.kinfo.netdev->name);
> memcpy(__entry->mbx_data, req,
> sizeof(struct hclge_mbx_pf_to_vf_cmd));
> ),
> @@ -55,7 +55,7 @@ TRACE_EVENT(hclge_vf_mbx_send,
> __field(u8, code)
> __field(u8, subcode)
> __string(pciname, pci_name(hdev->pdev))
> - __string(devname, &hdev->nic.kinfo.netdev->name)
> + __string(devname, hdev->nic.kinfo.netdev->name)
> __array(u32, mbx_data, VF_SEND_MBX_LEN)
> ),
>
> @@ -64,7 +64,7 @@ TRACE_EVENT(hclge_vf_mbx_send,
> __entry->code = req->msg.code;
> __entry->subcode = req->msg.subcode;
> __assign_str(pciname, pci_name(hdev->pdev));
> - __assign_str(devname, &hdev->nic.kinfo.netdev->name);
> + __assign_str(devname, hdev->nic.kinfo.netdev->name);
> memcpy(__entry->mbx_data, req,
> sizeof(struct hclge_mbx_vf_to_pf_cmd));
> ),
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] net: hns3: tracing: fix hclgevf trace event strings
2024-03-13 13:34 [PATCH] net: hns3: tracing: fix hclgevf trace event strings Steven Rostedt
2024-03-14 11:48 ` Jijie Shao
@ 2024-03-14 14:39 ` Paolo Abeni
2024-03-14 16:00 ` Steven Rostedt
1 sibling, 1 reply; 5+ messages in thread
From: Paolo Abeni @ 2024-03-14 14:39 UTC (permalink / raw)
To: Steven Rostedt, LKML, Linux Trace Kernel, netdev
Cc: Yisen Zhuang, Salil Mehta, Jijie Shao, David S. Miller,
Eric Dumazet, Jakub Kicinski, Yufeng Mo, Huazhong Tan
On Wed, 2024-03-13 at 09:34 -0400, Steven Rostedt wrote:
> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
>
> [
> Note, I need to take this patch through my tree, so I'm looking for acks.
Note that this device driver is changing quite rapidly, so I expect
some conflicts here later. I guess Liuns will have to handle them ;)
> This causes the build to fail when I add the __assign_str() check, which
> I was about to push to Linus, but it breaks allmodconfig due to this error.
> ]
>
> The __string() and __assign_str() helper macros of the TRACE_EVENT() macro
> are going through some optimizations where only the source string of
> __string() will be used and the __assign_str() source will be ignored and
> later removed.
>
> To make sure that there's no issues, a new check is added between the
> __string() src argument and the __assign_str() src argument that does a
> strcmp() to make sure they are the same string.
>
> The hclgevf trace events have:
>
> __assign_str(devname, &hdev->nic.kinfo.netdev->name);
>
> Which triggers the warning:
>
> hclgevf_trace.h:34:39: error: passing argument 1 of ‘strcmp’ from incompatible pointer type [-Werror=incompatible-pointer-types]
> 34 | __assign_str(devname, &hdev->nic.kinfo.netdev->name);
> [..]
> arch/x86/include/asm/string_64.h:75:24: note: expected ‘const char *’ but argument is of type ‘char (*)[16]’
> 75 | int strcmp(const char *cs, const char *ct);
> | ~~~~~~~~~~~~^~
>
>
> Because __assign_str() now has:
>
> WARN_ON_ONCE(__builtin_constant_p(src) ? \
> strcmp((src), __data_offsets.dst##_ptr_) : \
> (src) != __data_offsets.dst##_ptr_); \
>
> The problem is the '&' on hdev->nic.kinfo.netdev->name. That's because
> that name is:
>
> char name[IFNAMSIZ]
>
> Where passing an address '&' of a char array is not compatible with strcmp().
>
> The '&' is not necessary, remove it.
>
> Fixes: d8355240cf8fb ("net: hns3: add trace event support for PF/VF mailbox")
checkpactch in strict mode complains the hash is not 12 char long.
> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
FWIW
Acked-by: Paolo Abeni <pabeni@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] net: hns3: tracing: fix hclgevf trace event strings
2024-03-14 14:39 ` Paolo Abeni
@ 2024-03-14 16:00 ` Steven Rostedt
2024-03-19 11:09 ` Simon Horman
0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2024-03-14 16:00 UTC (permalink / raw)
To: Paolo Abeni
Cc: LKML, Linux Trace Kernel, netdev, Yisen Zhuang, Salil Mehta,
Jijie Shao, David S. Miller, Eric Dumazet, Jakub Kicinski,
Yufeng Mo, Huazhong Tan
On Thu, 14 Mar 2024 15:39:28 +0100
Paolo Abeni <pabeni@redhat.com> wrote:
> On Wed, 2024-03-13 at 09:34 -0400, Steven Rostedt wrote:
> > From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> >
> > [
> > Note, I need to take this patch through my tree, so I'm looking for acks.
>
> Note that this device driver is changing quite rapidly, so I expect
> some conflicts here later. I guess Liuns will have to handle them ;)
Well, it merges fine with linux-next and linus's current master. ;-)
>
> > This causes the build to fail when I add the __assign_str() check, which
> > I was about to push to Linus, but it breaks allmodconfig due to this error.
> > ]
> >
> > The __string() and __assign_str() helper macros of the TRACE_EVENT() macro
> > are going through some optimizations where only the source string of
> > __string() will be used and the __assign_str() source will be ignored and
> > later removed.
> >
> > To make sure that there's no issues, a new check is added between the
> > __string() src argument and the __assign_str() src argument that does a
> > strcmp() to make sure they are the same string.
> >
> > The hclgevf trace events have:
> >
> > __assign_str(devname, &hdev->nic.kinfo.netdev->name);
> >
> > Which triggers the warning:
> >
> > hclgevf_trace.h:34:39: error: passing argument 1 of ‘strcmp’ from incompatible pointer type [-Werror=incompatible-pointer-types]
> > 34 | __assign_str(devname, &hdev->nic.kinfo.netdev->name);
> > [..]
> > arch/x86/include/asm/string_64.h:75:24: note: expected ‘const char *’ but argument is of type ‘char (*)[16]’
> > 75 | int strcmp(const char *cs, const char *ct);
> > | ~~~~~~~~~~~~^~
> >
> >
> > Because __assign_str() now has:
> >
> > WARN_ON_ONCE(__builtin_constant_p(src) ? \
> > strcmp((src), __data_offsets.dst##_ptr_) : \
> > (src) != __data_offsets.dst##_ptr_); \
> >
> > The problem is the '&' on hdev->nic.kinfo.netdev->name. That's because
> > that name is:
> >
> > char name[IFNAMSIZ]
> >
> > Where passing an address '&' of a char array is not compatible with strcmp().
> >
> > The '&' is not necessary, remove it.
> >
> > Fixes: d8355240cf8fb ("net: hns3: add trace event support for PF/VF mailbox")
>
> checkpactch in strict mode complains the hash is not 12 char long.
Hmm, I wonder why my git blame gives me 13 characters in the sha. (I cut
and pasted it from git blame). My git config has:
[core]
abbrev = 12
>
> > Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
>
> FWIW
>
> Acked-by: Paolo Abeni <pabeni@redhat.com>
Thanks!
-- Steve
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] net: hns3: tracing: fix hclgevf trace event strings
2024-03-14 16:00 ` Steven Rostedt
@ 2024-03-19 11:09 ` Simon Horman
0 siblings, 0 replies; 5+ messages in thread
From: Simon Horman @ 2024-03-19 11:09 UTC (permalink / raw)
To: Steven Rostedt
Cc: Paolo Abeni, LKML, Linux Trace Kernel, netdev, Yisen Zhuang,
Salil Mehta, Jijie Shao, David S. Miller, Eric Dumazet,
Jakub Kicinski, Yufeng Mo, Huazhong Tan
On Thu, Mar 14, 2024 at 12:00:27PM -0400, Steven Rostedt wrote:
> On Thu, 14 Mar 2024 15:39:28 +0100
> Paolo Abeni <pabeni@redhat.com> wrote:
>
> > On Wed, 2024-03-13 at 09:34 -0400, Steven Rostedt wrote:
...
> > > Fixes: d8355240cf8fb ("net: hns3: add trace event support for PF/VF mailbox")
> >
> > checkpactch in strict mode complains the hash is not 12 char long.
>
> Hmm, I wonder why my git blame gives me 13 characters in the sha. (I cut
> and pasted it from git blame). My git config has:
>
> [core]
> abbrev = 12
I wonder if there is a collusion at 12 chars in your local tree.
...
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-03-19 11:09 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-13 13:34 [PATCH] net: hns3: tracing: fix hclgevf trace event strings Steven Rostedt
2024-03-14 11:48 ` Jijie Shao
2024-03-14 14:39 ` Paolo Abeni
2024-03-14 16:00 ` Steven Rostedt
2024-03-19 11:09 ` Simon Horman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).