drm/amd/display: Don't call dm_log_to_buffer directly in dc_conn_log
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 28 Nov 2017 11:06:13 +0000 (12:06 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Dec 2017 17:48:28 +0000 (12:48 -0500)
dm_log_to_buffer logs unconditionally, so calling it directly resulted
in the main message being logged even when the event type isn't enabled
in the event mask.

To fix this, use the new dm_logger_append_va API.

Fixes spurious messages like

 [drm] {1920x1200, 2080x1235@154000Khz}

in dmesg when a mode is set.

v2:
* Use new dm_logger_append_va API, fixes incorrect va_list usage in v1
* Just use and decrease entry.buf_offset to get rid of the trailing
  newline

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/basics/log_helpers.c

index 6e43168fbdd65b1d12be9d647eb2763200c89d27..854678a0c54baba7af6f64451b09105d6b1c7d5a 100644 (file)
@@ -83,15 +83,11 @@ void dc_conn_log(struct dc_context *ctx,
                        link->link_index);
 
        va_start(args, msg);
-       entry.buf_offset += dm_log_to_buffer(
-               &entry.buf[entry.buf_offset],
-               LOG_MAX_LINE_SIZE - entry.buf_offset,
-               msg, args);
+       dm_logger_append_va(&entry, msg, args);
 
-       if (entry.buf[strlen(entry.buf) - 1] == '\n') {
-               entry.buf[strlen(entry.buf) - 1] = '\0';
+       if (entry.buf_offset > 0 &&
+           entry.buf[entry.buf_offset - 1] == '\n')
                entry.buf_offset--;
-       }
 
        if (hex_data)
                for (i = 0; i < hex_data_count; i++)