diff options
-rw-r--r-- | src/intel/tools/aubinator.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c index fbd8721d1c0..abade4519ba 100644 --- a/src/intel/tools/aubinator.c +++ b/src/intel/tools/aubinator.c @@ -993,7 +993,7 @@ static int aub_file_decode_batch(struct aub_file *file, struct gen_spec *spec) { uint32_t *p, h, device, data_type, *new_cursor; - int header_length, payload_size, bias; + int header_length, bias; if (file->end - file->cursor < 1) return AUB_ITEM_DECODE_NEED_MORE_DATA; @@ -1016,23 +1016,13 @@ aub_file_decode_batch(struct aub_file *file, struct gen_spec *spec) return AUB_ITEM_DECODE_FAILED; } - payload_size = 0; - switch (h & 0xffff0000) { - case MAKE_HEADER(TYPE_AUB, OPCODE_AUB, SUBOPCODE_HEADER): - if (file->end - file->cursor < 12) - return AUB_ITEM_DECODE_NEED_MORE_DATA; - payload_size = p[12]; - break; - case MAKE_HEADER(TYPE_AUB, OPCODE_AUB, SUBOPCODE_BLOCK): + new_cursor = p + header_length + bias; + if ((h & 0xffff0000) == MAKE_HEADER(TYPE_AUB, OPCODE_AUB, SUBOPCODE_BLOCK)) { if (file->end - file->cursor < 4) return AUB_ITEM_DECODE_NEED_MORE_DATA; - payload_size = p[4]; - break; - default: - break; + new_cursor += p[4] / 4; } - new_cursor = p + header_length + bias + payload_size / 4; if (new_cursor > file->end) return AUB_ITEM_DECODE_NEED_MORE_DATA; |