tracing: xen: Ordered comparison of function pointers
authorChangbin Du <changbin.du@gmail.com>
Sun, 12 Jan 2020 03:42:31 +0000 (11:42 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Jan 2020 15:45:30 +0000 (16:45 +0100)
commit d0695e2351102affd8efae83989056bc4b275917 upstream.

Just as commit 0566e40ce7 ("tracing: initcall: Ordered comparison of
function pointers"), this patch fixes another remaining one in xen.h
found by clang-9.

In file included from arch/x86/xen/trace.c:21:
In file included from ./include/trace/events/xen.h:475:
In file included from ./include/trace/define_trace.h:102:
In file included from ./include/trace/trace_events.h:473:
./include/trace/events/xen.h:69:7: warning: ordered comparison of function \
pointers ('xen_mc_callback_fn_t' (aka 'void (*)(void *)') and 'xen_mc_callback_fn_t') [-Wordered-compare-function-pointers]
                    __field(xen_mc_callback_fn_t, fn)
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/trace/trace_events.h:421:29: note: expanded from macro '__field'
                                ^
./include/trace/trace_events.h:407:6: note: expanded from macro '__field_ext'
                                 is_signed_type(type), filter_type);    \
                                 ^
./include/linux/trace_events.h:554:44: note: expanded from macro 'is_signed_type'
                                              ^

Fixes: c796f213a6934 ("xen/trace: add multicall tracing")
Signed-off-by: Changbin Du <changbin.du@gmail.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/trace/events/xen.h

index 9a0e8af..a5ccfa6 100644 (file)
@@ -66,7 +66,11 @@ TRACE_EVENT(xen_mc_callback,
            TP_PROTO(xen_mc_callback_fn_t fn, void *data),
            TP_ARGS(fn, data),
            TP_STRUCT__entry(
-                   __field(xen_mc_callback_fn_t, fn)
+                   /*
+                    * Use field_struct to avoid is_signed_type()
+                    * comparison of a function pointer.
+                    */
+                   __field_struct(xen_mc_callback_fn_t, fn)
                    __field(void *, data)
                    ),
            TP_fast_assign(