aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWisley Chen <wisley.chen@quanta.corp-partner.google.com>2023-09-05 13:12:10 +0800
committerFelix Held <felix-coreboot@felixheld.de>2023-09-07 13:31:33 +0000
commit15cb0d55275d8d2c3509d2f529daa754a4e7a74d (patch)
tree4c3b862523a80670e184b2c116e5dc7c2c8519dd /src
parentd99fac194962a9867ae1d16280b1624af5fbdb71 (diff)
mb/google/brya/var/{kano,osiris,taeko}: Add null pointer check
Without part no. in CBI, mainboard_get_dram_part_num returns null. To prevent passing this null pointer to strcmp and avoid unexpected behavior, proper handling is necessary. BUG=none TEST=emerge-brya coreboot Change-Id: I47e42376c6b1347c56afaec218aed63c5469f0aa Signed-off-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77646 Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/brya/variants/kano/memory.c11
-rw-r--r--src/mainboard/google/brya/variants/osiris/memory.c11
-rw-r--r--src/mainboard/google/brya/variants/taeko/memory.c11
3 files changed, 18 insertions, 15 deletions
diff --git a/src/mainboard/google/brya/variants/kano/memory.c b/src/mainboard/google/brya/variants/kano/memory.c
index 416fb073cf..c81f8cc21f 100644
--- a/src/mainboard/google/brya/variants/kano/memory.c
+++ b/src/mainboard/google/brya/variants/kano/memory.c
@@ -136,10 +136,11 @@ const struct mb_cfg *variant_memory_params(void)
const char *hynix_mem1 = "H54G46CYRBX267";
const char *hynix_mem2 = "H54G56CYRBX247";
- if (!strcmp(part_num, hynix_mem1) || !strcmp(part_num, hynix_mem2)) {
- printk(BIOS_INFO, "Enable cs_pi_start_high_in_ect for Hynix memory\n");
- return &hynix_memcfg;
- } else {
- return &kano_memcfg;
+ if (part_num) {
+ if (!strcmp(part_num, hynix_mem1) || !strcmp(part_num, hynix_mem2)) {
+ printk(BIOS_INFO, "Enable cs_pi_start_high_in_ect for Hynix memory\n");
+ return &hynix_memcfg;
+ }
}
+ return &kano_memcfg;
}
diff --git a/src/mainboard/google/brya/variants/osiris/memory.c b/src/mainboard/google/brya/variants/osiris/memory.c
index 564289875f..4d16379174 100644
--- a/src/mainboard/google/brya/variants/osiris/memory.c
+++ b/src/mainboard/google/brya/variants/osiris/memory.c
@@ -136,10 +136,11 @@ const struct mb_cfg *variant_memory_params(void)
const char *hynix_mem1 = "H54G46CYRBX267";
const char *hynix_mem2 = "H54G56CYRBX247";
- if (!strcmp(part_num, hynix_mem1) || !strcmp(part_num, hynix_mem2)) {
- printk(BIOS_INFO, "Enable cs_pi_start_high_in_ect for Hynix memory\n");
- return &hynix_memcfg;
- } else {
- return &osiris_memcfg;
+ if (part_num) {
+ if (!strcmp(part_num, hynix_mem1) || !strcmp(part_num, hynix_mem2)) {
+ printk(BIOS_INFO, "Enable cs_pi_start_high_in_ect for Hynix memory\n");
+ return &hynix_memcfg;
+ }
}
+ return &osiris_memcfg;
}
diff --git a/src/mainboard/google/brya/variants/taeko/memory.c b/src/mainboard/google/brya/variants/taeko/memory.c
index 72a6be2964..cecfdc6222 100644
--- a/src/mainboard/google/brya/variants/taeko/memory.c
+++ b/src/mainboard/google/brya/variants/taeko/memory.c
@@ -135,12 +135,13 @@ static const struct mb_cfg hynix_memconfig = {
const struct mb_cfg *variant_memory_params(void)
{
const char *dram_part_num = mainboard_get_dram_part_num();
- if (strcmp(dram_part_num, "H54G46CYRBX267N") == 0) {
- printk(BIOS_INFO, "Enable cs_pi_start_high_in_ect for Hynix DRAM part\n");
- return &hynix_memconfig;
- } else {
- return &baseboard_memcfg;
+ if (dram_part_num) {
+ if (strcmp(dram_part_num, "H54G46CYRBX267N") == 0) {
+ printk(BIOS_INFO, "Enable cs_pi_start_high_in_ect for Hynix DRAM part\n");
+ return &hynix_memconfig;
+ }
}
+ return &baseboard_memcfg;
}
int variant_memory_sku(void)