⬢ DragonFlyBSD Kernel Audit
DF-3600 / run.log
← back to finding ↓ download raw
--- sq_edc_source_names[] has 7 entries (gfx_v8_0.c:710-718) ---
static const char * const sq_edc_source_names[] = {
	"SQ_EDC_INFO_SOURCE_INVALID: No EDC error has occurred",
	"SQ_EDC_INFO_SOURCE_INST: EDC source is Instruction Fetch",
	"SQ_EDC_INFO_SOURCE_SGPR: EDC source is SGPR or SQC data return",
	"SQ_EDC_INFO_SOURCE_VGPR: EDC source is VGPR",
	"SQ_EDC_INFO_SOURCE_LDS: EDC source is LDS",
	"SQ_EDC_INFO_SOURCE_GDS: EDC source is GDS",
	"SQ_EDC_INFO_SOURCE_TA: EDC source is TA",
};

--- SQ_EDC_INFO.SOURCE is a 3-bit field (0..7) ---
14083:#define SQ_EDC_INFO__SOURCE_MASK 0x1c0
14084:#define SQ_EDC_INFO__SOURCE__SHIFT 0x6

--- unbounded use as array index + %s (gfx_v8_0.c:6811, 6831) ---
				sq_edc_source = REG_GET_FIELD(RREG32(mmSQ_EDC_INFO), SQ_EDC_INFO, SOURCE);
					REG_GET_FIELD(ih_data, SQ_INTERRUPT_WORD_WAVE, VM_ID),
					REG_GET_FIELD(ih_data, SQ_INTERRUPT_WORD_WAVE, PRIV) ? "true" : "false",
					(sq_edc_source != -1) ? sq_edc_source_names[sq_edc_source] : "unavailable"
				);