s390/debug: remove function type cast
authorHeiko Carstens <hca@linux.ibm.com>
Fri, 18 Nov 2022 14:21:02 +0000 (15:21 +0100)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Wed, 23 Nov 2022 15:24:07 +0000 (16:24 +0100)
clang warns about an incompatible function type cast:

  CC      arch/s390/kernel/debug.o
arch/s390/kernel/debug.c:142:2: error: cast from 'int (*)(debug_info_t *, struct debug_view *, char *, debug_sprintf_entry_t *)' (aka 'int (*)(struct debug_info *, struct debug_view *, char *, debug_sprintf_entry_t *)') to 'debug_format_proc_t *' (aka 'int (*)(struct debug_info *, struct debug_view *, char *, const char *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
        (debug_format_proc_t *)&debug_sprintf_format_fn,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Get rid of this warning by changing debug_sprintf_format_fn() so it matches
the debug_format_proc_t function type, and do the cast of the last
parameter within the function itself.
This is the standard way of handling such cases anyway.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/kernel/debug.c

index d7a8206..b376f03 100644 (file)
@@ -92,7 +92,7 @@ static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view,
 static int debug_hex_ascii_format_fn(debug_info_t *id, struct debug_view *view,
                                     char *out_buf, const char *in_buf);
 static int debug_sprintf_format_fn(debug_info_t *id, struct debug_view *view,
-                                  char *out_buf, debug_sprintf_entry_t *curr_event);
+                                  char *out_buf, const char *inbuf);
 static void debug_areas_swap(debug_info_t *a, debug_info_t *b);
 static void debug_events_append(debug_info_t *dest, debug_info_t *src);
 
@@ -139,7 +139,7 @@ struct debug_view debug_sprintf_view = {
        "sprintf",
        NULL,
        &debug_dflt_header_fn,
-       (debug_format_proc_t *)&debug_sprintf_format_fn,
+       &debug_sprintf_format_fn,
        NULL,
        NULL
 };
@@ -1532,8 +1532,9 @@ EXPORT_SYMBOL(debug_dflt_header_fn);
 #define DEBUG_SPRINTF_MAX_ARGS 10
 
 static int debug_sprintf_format_fn(debug_info_t *id, struct debug_view *view,
-                                  char *out_buf, debug_sprintf_entry_t *curr_event)
+                                  char *out_buf, const char *inbuf)
 {
+       debug_sprintf_entry_t *curr_event = (debug_sprintf_entry_t *)inbuf;
        int num_longs, num_used_args = 0, i, rc = 0;
        int index[DEBUG_SPRINTF_MAX_ARGS];