⬢ DragonFlyBSD Kernel Audit
DF-4556 / fix.diff
← back to finding ↓ download raw
fix.diff — DF-4556: assemble partial AUX read chunks at the running offset

Carry ctx->offset into the reply destination so chunk N lands after chunk N-1
instead of overwriting it. Mirrors the request side which already uses
`ctx->buffer + ctx->offset` (dce_aux.c:583).

Never applied to sys/ (read-only audit target).

--- a/sys/dev/drm/amd/display/dc/dce/dce_aux.c
+++ b/sys/dev/drm/amd/display/dc/dce/dce_aux.c
@@ -498,7 +498,8 @@ static void process_read_request(
 			ctx->timed_out_retry_aux = 0;
 			ctx->invalid_reply_retry_aux = 0;

 			ctx->reply.length = ctx->returned_byte;
-			ctx->reply.data = ctx->buffer;
+			/* partial reads continue at the running offset */
+			ctx->reply.data = ctx->buffer + ctx->offset;

 			process_read_reply(engine, ctx);
 		}