Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/xe: Avoid touching consumer fields in GuC pagefault ack

The GuC pagefault acknowledgment code is designed to extract the fields
needed for the acknowledgment from the producer-stored message so that
the consumer fields can be overloaded to return additional information.
The ASID is stored in the producer message; extract it from there to
future‑proof this logic.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Francois Dugast <francois.dugast@intel.com>
Link: https://patch.msgid.link/20260212204227.2764054-3-matthew.brost@intel.com

+2 -1
+2 -1
drivers/gpu/drm/xe/xe_guc_pagefault.c
··· 17 17 u32 pdata = FIELD_GET(PFD_PDATA_LO, pf->producer.msg[0]) | 18 18 (FIELD_GET(PFD_PDATA_HI, pf->producer.msg[1]) << 19 19 PFD_PDATA_HI_SHIFT); 20 + u32 asid = FIELD_GET(PFD_ASID, pf->producer.msg[1]); 20 21 u32 action[] = { 21 22 XE_GUC_ACTION_PAGE_FAULT_RES_DESC, 22 23 ··· 25 24 FIELD_PREP(PFR_SUCCESS, !!err) | 26 25 FIELD_PREP(PFR_REPLY, PFR_ACCESS) | 27 26 FIELD_PREP(PFR_DESC_TYPE, FAULT_RESPONSE_DESC) | 28 - FIELD_PREP(PFR_ASID, pf->consumer.asid), 27 + FIELD_PREP(PFR_ASID, asid), 29 28 30 29 FIELD_PREP(PFR_VFID, vfid) | 31 30 FIELD_PREP(PFR_ENG_INSTANCE, engine_instance) |