Add usage of unaligned wc mempy in read_update_log_buffer as newer formats of GuC debug-log-events are no longer guaranteed to be exactly 4-dwords long per event. Signed-off-by: Alan Previn <alan.previn.teres.alexis@xxxxxxxxx> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@xxxxxxxxx> --- drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c index c5a7aecd08ac..2fa952916120 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c @@ -459,13 +459,16 @@ static void _guc_log_copy_debuglogs_for_relay(struct intel_guc_log *log) /* Just copy the newly written data */ if (read_offset > write_offset) { - i915_memcpy_from_wc(dst_data, src_data, write_offset); + if (!i915_memcpy_from_wc(dst_data, src_data, write_offset)) + i915_unaligned_memcpy_from_wc(dst_data, src_data, write_offset); bytes_to_copy = buffer_size - read_offset; } else { bytes_to_copy = write_offset - read_offset; } - i915_memcpy_from_wc(dst_data + read_offset, - src_data + read_offset, bytes_to_copy); + if (!i915_memcpy_from_wc(dst_data + read_offset, + src_data + read_offset, bytes_to_copy)) + i915_unaligned_memcpy_from_wc(dst_data + read_offset, + src_data + read_offset, bytes_to_copy); src_data += buffer_size; dst_data += buffer_size; -- 2.34.1