libpldmresponder: fix PDR and FRU table generation order
Since FRU table need to be called when generating PDR, FRU table generated
before generating PDR.
Tested: after executing the following command, FRU table generated first
and then generated PDR.
pldmtool platform getpdr -d 1
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I9189b02661916b7bdda641cd76335d8231725b0d
diff --git a/libpldmresponder/platform.cpp b/libpldmresponder/platform.cpp
index dff2352..7309cea 100644
--- a/libpldmresponder/platform.cpp
+++ b/libpldmresponder/platform.cpp
@@ -167,19 +167,6 @@
Response Handler::getPDR(const pldm_msg* request, size_t payloadLength)
{
- if (!pdrCreated)
- {
- generateTerminusLocatorPDR(pdrRepo);
- generate(*dBusIntf, pdrJsonsDir, pdrRepo);
- pdrCreated = true;
-
- if (dbusToPLDMEventHandler)
- {
- dbusToPLDMEventHandler->listenSensorEvent(pdrRepo,
- sensorDbusObjMaps);
- }
- }
-
// Build FRU table if not built, since entity association PDR's are built
// when the FRU table is constructed.
if (fruHandler)
@@ -187,6 +174,13 @@
fruHandler->buildFRUTable();
}
+ if (!pdrCreated)
+ {
+ generateTerminusLocatorPDR(pdrRepo);
+ generate(*dBusIntf, pdrJsonsDir, pdrRepo);
+ pdrCreated = true;
+ }
+
Response response(sizeof(pldm_msg_hdr) + PLDM_GET_PDR_MIN_RESP_BYTES, 0);
auto responsePtr = reinterpret_cast<pldm_msg*>(response.data());