x86: protect against abi assumptions from compiler
Some of the functions called from assembly assume the standard x86 32-bit ABI of passing all arguments on the stack. However, that calling ABI can be changed by compiler flags. In order to protect against the current implicit calling convention annotate the functions called from assembly with the cdecl function attribute. That tells the compiler to use the stack based parameter calling convention. Change-Id: I83625e1f92c6821a664b191b6ce1250977cf037a Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/2794 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
committed by
Ronald G. Minnich
parent
e2d9e5bfa9
commit
ef4275bc2e
@@ -429,7 +429,7 @@ struct smm_runtime {
|
||||
u8 apic_id_to_cpu[CONFIG_MAX_CPUS];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
typedef void (*smm_handler_t)(void *arg, int cpu,
|
||||
typedef void __attribute__((cdecl)) (*smm_handler_t)(void *arg, int cpu,
|
||||
const struct smm_runtime *runtime);
|
||||
|
||||
#ifdef __SMM__
|
||||
|
Reference in New Issue
Block a user