x86/acpigen: Fix BufferSize of ResourceTemplate
Don't start counting the buffer size amidst the BufferSize field itself. This should help with a regression introduced in Linux with [1] which checks the BufferSize field. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=57707a9a778 Change-Id: I7349c8e281c41384491d730dfeac3336f29992f7 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/19284 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
eca093ecfe
commit
7d89ce3097
|
@ -862,6 +862,8 @@ void acpigen_write_resourcetemplate_header(void)
|
||||||
acpigen_write_len_f();
|
acpigen_write_len_f();
|
||||||
acpigen_emit_byte(WORD_PREFIX);
|
acpigen_emit_byte(WORD_PREFIX);
|
||||||
len_stack[ltop++] = acpigen_get_current();
|
len_stack[ltop++] = acpigen_get_current();
|
||||||
|
/* Add 2 dummy bytes for the ACPI word (keep aligned with
|
||||||
|
the calclulation in acpigen_write_resourcetemplate() below). */
|
||||||
acpigen_emit_byte(0x00);
|
acpigen_emit_byte(0x00);
|
||||||
acpigen_emit_byte(0x00);
|
acpigen_emit_byte(0x00);
|
||||||
}
|
}
|
||||||
|
@ -879,7 +881,9 @@ void acpigen_write_resourcetemplate_footer(void)
|
||||||
acpigen_emit_byte(0x79);
|
acpigen_emit_byte(0x79);
|
||||||
acpigen_emit_byte(0x00);
|
acpigen_emit_byte(0x00);
|
||||||
|
|
||||||
len = gencurrent - p;
|
/* Start counting past the 2-bytes length added in
|
||||||
|
acpigen_write_resourcetemplate() above. */
|
||||||
|
len = acpigen_get_current() - (p + 2);
|
||||||
|
|
||||||
/* patch len word */
|
/* patch len word */
|
||||||
p[0] = len & 0xff;
|
p[0] = len & 0xff;
|
||||||
|
|
Loading…
Reference in New Issue