summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-intel/psu-manager
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-intel/psu-manager')
-rw-r--r--meta-openbmc-mods/meta-common/recipes-intel/psu-manager/files/0001-Add-vector-size-check.patch49
-rw-r--r--meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb2
2 files changed, 51 insertions, 0 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/files/0001-Add-vector-size-check.patch b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/files/0001-Add-vector-size-check.patch
new file mode 100644
index 000000000..0df27f048
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/files/0001-Add-vector-size-check.patch
@@ -0,0 +1,49 @@
+From 556d1fe01fa1624b7ee967efbd2f55ed80375356 Mon Sep 17 00:00:00 2001
+From: "Arun P. Mohanan" <arun.p.m@linux.intel.com>
+Date: Tue, 15 Feb 2022 16:56:37 +0530
+Subject: [PATCH] Add vector size check
+
+When PowerSupplyRedundancyEnabled is set to true and RotationRankOrder
+is 0, xyz.openbmc_project.coldredundancy.service core-dump issue
+is observed.
+
+Add a check to address above corner case and avoid core-dump.
+
+Tested:
+Verified core-dump is not observed with above settings
+
+Feb 15 11:39:25 intel-obmc psuredundancy[18502]: RotationRankOrder less than number of PSUs
+
+Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com>
+---
+ src/cold_redundancy.cpp | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/src/cold_redundancy.cpp b/src/cold_redundancy.cpp
+index 9cee6ec..9dc5907 100644
+--- a/src/cold_redundancy.cpp
++++ b/src/cold_redundancy.cpp
+@@ -615,7 +615,19 @@ void ColdRedundancy::reRanking(void)
+ {
+ psu->order = 0;
+ }
+- orders[psuNumber++] = psu->order;
++ if (psuNumber < orders.size())
++ {
++ orders[psuNumber++] = psu->order;
++ }
++ else
++ {
++ static bool logOnlyOnce = false;
++ if (!logOnlyOnce)
++ {
++ std::cerr << "RotationRankOrder less than number of PSUs\n";
++ logOnlyOnce = true;
++ }
++ }
+ }
+ rotationRankOrder(orders);
+ }
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
index 6ce844f60..4c1625695 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
@@ -4,6 +4,8 @@ DESCRIPTION = "Power supply manager which include PSU Cold Redundancy service"
SRC_URI = "git://git@github.com/Intel-BMC/psu-manager.git;protocol=ssh"
SRCREV = "30788892792c302b1317bac4e7f837ca1374d789"
+SRC_URI += "file://0001-Add-vector-size-check.patch \
+ "
S = "${WORKDIR}/git"
PV = "1.0+git${SRCPV}"