mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
drm/i915/perf: Consider OA buffer boundary when zeroing out reports
For reports that are not powers of 2, reports at the end of the OA buffer may get split across the buffer boundary. When zeroing out such reports, take the split into consideration. v2: Use OA_BUFFER_SIZE (Ashutosh) Fixes:09a36015d9("drm/i915/perf: Clear out entire reports after reading if not power of 2 size") Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230616173402.699776-1-umesh.nerlige.ramappa@intel.com (cherry picked from commit40b1588a75) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
This commit is contained in:
parent
5c413188c6
commit
dde4c3d477
|
|
@ -868,8 +868,17 @@ static int gen8_append_oa_reports(struct i915_perf_stream *stream,
|
|||
oa_report_id_clear(stream, report32);
|
||||
oa_timestamp_clear(stream, report32);
|
||||
} else {
|
||||
u8 *oa_buf_end = stream->oa_buffer.vaddr +
|
||||
OA_BUFFER_SIZE;
|
||||
u32 part = oa_buf_end - (u8 *)report32;
|
||||
|
||||
/* Zero out the entire report */
|
||||
memset(report32, 0, report_size);
|
||||
if (report_size <= part) {
|
||||
memset(report32, 0, report_size);
|
||||
} else {
|
||||
memset(report32, 0, part);
|
||||
memset(oa_buf_base, 0, report_size - part);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user