Re: [PATCH net-next] net: qrtr: correct types of trace event parameters

Mukesh Ojha
2023-04-06T08:07:50Z

On 4/3/2023 9:13 PM, Simon Horman wrote:
> The arguments passed to the trace events are of type unsigned int,
> however the signature of the events used __le32 parameters.
>
> I may be missing the point here, but sparse flagged this and it
> does seem incorrect to me.
>
> net/qrtr/ns.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, include/trace/events/qrtr.h):
> ./include/trace/events/qrtr.h:11:1: warning: cast to restricted __le32
> ./include/trace/events/qrtr.h:11:1: warning: restricted __le32 degrades to integer
> ./include/trace/events/qrtr.h:11:1: warning: restricted __le32 degrades to integer
> ... (a lot more similar warnings)
> net/qrtr/ns.c:115:47: expected restricted __le32 [usertype] service
> net/qrtr/ns.c:115:47: got unsigned int service
> net/qrtr/ns.c:115:61: warning: incorrect type in argument 2 (different base types)
> ... (a lot more similar warnings)
>
> Fixes: dfddb54043f0 ("net: qrtr: Add tracepoint support")
> Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
> Signed-off-by: Simon Horman <horms@kernel.org>
> ---
> v1
> * Drop RFC designation
> * Add Fixes and Reviewed-by tags
> * Target at 'net-next' (not sure if that is correct)
>
> RFC
> * Link: https://lore.kernel.org/r/20230402-qrtr-trace-types-v1-1-da062d368e74@kernel.org
> ---
> include/trace/events/qrtr.h | 33 ++++++++++++++++++---------------
> 1 file changed, 18 insertions(+), 15 deletions(-)
>
> diff --git a/include/trace/events/qrtr.h b/include/trace/events/qrtr.h
> index b1de14c3bb93..441132c67133 100644
> --- a/include/trace/events/qrtr.h
> +++ b/include/trace/events/qrtr.h
> @@ -10,15 +10,16 @@
>
> TRACE_EVENT(qrtr_ns_service_announce_new,
>
> - TP_PROTO(__le32 service, __le32 instance, __le32 node, __le32 port),
> + TP_PROTO(unsigned int service, unsigned int instance,
> + unsigned int node, unsigned int port),
>
> TP_ARGS(service, instance, node, port),
>
> TP_STRUCT__entry(
> - __field(__le32, service)
> - __field(__le32, instance)
> - __field(__le32, node)
> - __field(__le32, port)
> + __field(unsigned int, service)
> + __field(unsigned int, instance)
> + __field(unsigned int, node)
> + __field(unsigned int, port)
> ),
>
> TP_fast_assign(
> @@ -36,15 +37,16 @@ TRACE_EVENT(qrtr_ns_service_announce_new,
>
> TRACE_EVENT(qrtr_ns_service_announce_del,
>
> - TP_PROTO(__le32 service, __le32 instance, __le32 node, __le32 port),
> + TP_PROTO(unsigned int service, unsigned int instance,
> + unsigned int node, unsigned int port),
>
> TP_ARGS(service, instance, node, port),
>
> TP_STRUCT__entry(
> - __field(__le32, service)
> - __field(__le32, instance)
> - __field(__le32, node)
> - __field(__le32, port)
> + __field(unsigned int, service)
> + __field(unsigned int, instance)
> + __field(unsigned int, node)
> + __field(unsigned int, port)
> ),
>
> TP_fast_assign(
> @@ -62,15 +64,16 @@ TRACE_EVENT(qrtr_ns_service_announce_del,
>
> TRACE_EVENT(qrtr_ns_server_add,
>
> - TP_PROTO(__le32 service, __le32 instance, __le32 node, __le32 port),
> + TP_PROTO(unsigned int service, unsigned int instance,
> + unsigned int node, unsigned int port),
>
> TP_ARGS(service, instance, node, port),
>
> TP_STRUCT__entry(
> - __field(__le32, service)
> - __field(__le32, instance)
> - __field(__le32, node)
> - __field(__le32, port)
> + __field(unsigned int, service)
> + __field(unsigned int, instance)
> + __field(unsigned int, node)
> + __field(unsigned int, port)

Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com>

-- Mukesh

> ),
>
> TP_fast_assign(
>