diff --git a/oem/ibm/libpldmresponder/file_io.cpp b/oem/ibm/libpldmresponder/file_io.cpp
index 177fe3f..c35084c 100644
--- a/oem/ibm/libpldmresponder/file_io.cpp
+++ b/oem/ibm/libpldmresponder/file_io.cpp
@@ -4,7 +4,7 @@
 
 #include "file_io_by_type.hpp"
 #include "file_table.hpp"
-#include "libpldmresponder/utils.hpp"
+#include "utils.hpp"
 #include "xyz/openbmc_project/Common/error.hpp"
 
 #include <fcntl.h>
@@ -75,7 +75,7 @@
         return rc;
     }
 
-    utils::CustomFD xdmaFd(dmaFd);
+    pldm::utils::CustomFD xdmaFd(dmaFd);
 
     void* vgaMem;
     vgaMem = mmap(nullptr, pageAlignedLength, upstream ? PROT_WRITE : PROT_READ,
diff --git a/oem/ibm/libpldmresponder/file_io.hpp b/oem/ibm/libpldmresponder/file_io.hpp
index a22a8c8..3a504bf 100644
--- a/oem/ibm/libpldmresponder/file_io.hpp
+++ b/oem/ibm/libpldmresponder/file_io.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "handler.hpp"
-#include "libpldmresponder/utils.hpp"
+#include "utils.hpp"
 
 #include <fcntl.h>
 #include <stdint.h>
@@ -107,7 +107,7 @@
                                    responsePtr);
         return response;
     }
-    utils::CustomFD fd(file);
+    pldm::utils::CustomFD fd(file);
 
     while (length > dma::maxSize)
     {
diff --git a/oem/ibm/libpldmresponder/file_io_by_type.cpp b/oem/ibm/libpldmresponder/file_io_by_type.cpp
index 7d001b9..e076253 100644
--- a/oem/ibm/libpldmresponder/file_io_by_type.cpp
+++ b/oem/ibm/libpldmresponder/file_io_by_type.cpp
@@ -4,7 +4,7 @@
 
 #include "file_io_type_lid.hpp"
 #include "file_io_type_pel.hpp"
-#include "libpldmresponder/utils.hpp"
+#include "utils.hpp"
 #include "xyz/openbmc_project/Common/error.hpp"
 
 #include <stdint.h>
diff --git a/oem/ibm/libpldmresponder/file_io_type_pel.cpp b/oem/ibm/libpldmresponder/file_io_type_pel.cpp
index 8029b47..ce9202a 100644
--- a/oem/ibm/libpldmresponder/file_io_type_pel.cpp
+++ b/oem/ibm/libpldmresponder/file_io_type_pel.cpp
@@ -2,7 +2,7 @@
 
 #include "file_io_type_pel.hpp"
 
-#include "libpldmresponder/utils.hpp"
+#include "utils.hpp"
 #include "xyz/openbmc_project/Common/error.hpp"
 
 #include <stdint.h>
@@ -34,7 +34,7 @@
 
     try
     {
-        auto service = getService(bus, logObjPath, logInterface);
+        auto service = pldm::utils::getService(bus, logObjPath, logInterface);
         auto method = bus.new_method_call(service.c_str(), logObjPath,
                                           logInterface, "GetPEL");
         method.append(fileHandle);
@@ -62,7 +62,7 @@
 
     try
     {
-        auto service = getService(bus, logObjPath, logInterface);
+        auto service = pldm::utils::getService(bus, logObjPath, logInterface);
         auto method = bus.new_method_call(service.c_str(), logObjPath,
                                           logInterface, "GetPEL");
         method.append(fileHandle);
@@ -149,7 +149,7 @@
 
     try
     {
-        auto service = getService(bus, logObjPath, logInterface);
+        auto service = pldm::utils::getService(bus, logObjPath, logInterface);
         auto method = bus.new_method_call(service.c_str(), logObjPath,
                                           logInterface, "HostAck");
         method.append(fileHandle);
@@ -173,7 +173,7 @@
 
     try
     {
-        auto service = getService(bus, logObjPath, logInterface);
+        auto service = pldm::utils::getService(bus, logObjPath, logInterface);
         using namespace sdbusplus::xyz::openbmc_project::Logging::server;
         std::map<std::string, std::string> addlData{};
         addlData.emplace("RAWPEL", std::move(pelFileName));
