diff options
author | Aaron Durbin <adurbin@chromium.org> | 2016-08-05 21:26:53 -0500 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-08-08 18:38:57 +0200 |
commit | 2d45c28675e1196ad03915ffba58b602363a19ed (patch) | |
tree | 4fca8123c921b8ef78e555dc954dcc78dd837f56 /src/soc/intel | |
parent | 16246ea9ce8a5982ec3ad465f1ea12a91abbc39e (diff) |
soc/intel/common: fix gsmi handler
The gsmi_exec() expects the parameter to be a pointer
to the 32-bit register storage of the SMI save state.
The previous code was passing a pointer with the value
obtained from the saved-state -- not a pointer to the
storage of the register value. This bug causes gsmi
to not log events because it's interrogating the
parameter buffer itself as if it were a pointer.
BUG=chrome-os-partner:55932
Change-Id: I37981424f1414edad1456b31cad1b99020d57db6
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/16087
Tested-by: build bot (Jenkins)
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/soc/intel')
-rw-r--r-- | src/soc/intel/common/smihandler.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/soc/intel/common/smihandler.c b/src/soc/intel/common/smihandler.c index f0c913fcaa..e27752b48d 100644 --- a/src/soc/intel/common/smihandler.c +++ b/src/soc/intel/common/smihandler.c @@ -221,7 +221,7 @@ static void southbridge_smi_gsmi(const struct reg_ebx = save_state_ops->get_reg(io_smi, RBX); /* drivers/elog/gsmi.c */ - ret = gsmi_exec(sub_command, (u32 *)(uintptr_t)reg_ebx); + ret = gsmi_exec(sub_command, ®_ebx); save_state_ops->set_reg(io_smi, RAX, ret); } |