From d157b3e1e0aa652bb067165659fb01badacb5020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Mon, 5 Aug 2019 15:13:53 +0300 Subject: [PATCH] arch/x86: Handle smm_subregion() failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The callers don't necessarily check return value of function. Make sure the parameters are not left uninitialised in that case. Change-Id: Ic02db2d35b2ec88506320e7df609940de4aef005 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/34708 Reviewed-by: Furquan Shaikh Reviewed-by: Arthur Heymans Tested-by: build bot (Jenkins) --- src/soc/amd/picasso/ramtop.c | 2 ++ src/soc/amd/stoneyridge/ramtop.c | 2 ++ src/soc/intel/apollolake/memmap.c | 2 ++ src/soc/intel/braswell/memmap.c | 2 ++ src/soc/intel/cannonlake/memmap.c | 2 ++ src/soc/intel/denverton_ns/memmap.c | 2 ++ src/soc/intel/icelake/memmap.c | 2 ++ src/soc/intel/skylake/memmap.c | 2 ++ 8 files changed, 16 insertions(+) diff --git a/src/soc/amd/picasso/ramtop.c b/src/soc/amd/picasso/ramtop.c index 344b7f7cc5..6b28ec7dd6 100644 --- a/src/soc/amd/picasso/ramtop.c +++ b/src/soc/amd/picasso/ramtop.c @@ -130,6 +130,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) clear_tvalid(); break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/amd/stoneyridge/ramtop.c b/src/soc/amd/stoneyridge/ramtop.c index 3a23df6c1a..26d84cef12 100644 --- a/src/soc/amd/stoneyridge/ramtop.c +++ b/src/soc/amd/stoneyridge/ramtop.c @@ -130,6 +130,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) clear_tvalid(); break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/intel/apollolake/memmap.c b/src/soc/intel/apollolake/memmap.c index 7494481fa5..17dfb3f545 100644 --- a/src/soc/intel/apollolake/memmap.c +++ b/src/soc/intel/apollolake/memmap.c @@ -68,6 +68,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) sub_size = cache_size; break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/intel/braswell/memmap.c b/src/soc/intel/braswell/memmap.c index 01594eabb0..51b7b36db4 100644 --- a/src/soc/intel/braswell/memmap.c +++ b/src/soc/intel/braswell/memmap.c @@ -62,6 +62,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) sub_size = cache_size; break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/intel/cannonlake/memmap.c b/src/soc/intel/cannonlake/memmap.c index b5b538c1ec..004e35c98c 100644 --- a/src/soc/intel/cannonlake/memmap.c +++ b/src/soc/intel/cannonlake/memmap.c @@ -72,6 +72,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) sub_size = ied_size; break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/intel/denverton_ns/memmap.c b/src/soc/intel/denverton_ns/memmap.c index d4265e994e..9507d7f238 100644 --- a/src/soc/intel/denverton_ns/memmap.c +++ b/src/soc/intel/denverton_ns/memmap.c @@ -96,6 +96,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) sub_size = cache_size; break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/intel/icelake/memmap.c b/src/soc/intel/icelake/memmap.c index 046774f0c6..13eb947935 100644 --- a/src/soc/intel/icelake/memmap.c +++ b/src/soc/intel/icelake/memmap.c @@ -70,6 +70,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) sub_size = ied_size; break; default: + *start = 0; + *size = 0; return -1; } diff --git a/src/soc/intel/skylake/memmap.c b/src/soc/intel/skylake/memmap.c index d6ab908c37..963a5003e8 100644 --- a/src/soc/intel/skylake/memmap.c +++ b/src/soc/intel/skylake/memmap.c @@ -74,6 +74,8 @@ int smm_subregion(int sub, uintptr_t *start, size_t *size) sub_size = ied_size; break; default: + *start = 0; + *size = 0; return -1; }