diff --git a/dbus.cpp b/dbus.cpp
index 1741019..17ad210 100644
--- a/dbus.cpp
+++ b/dbus.cpp
@@ -21,18 +21,15 @@
 namespace logging
 {
 
-ObjectValueTree getManagedObjects(
-        sdbusplus::bus::bus& bus,
-        const std::string& service,
-        const std::string& objPath)
+ObjectValueTree getManagedObjects(sdbusplus::bus::bus& bus,
+                                  const std::string& service,
+                                  const std::string& objPath)
 {
     ObjectValueTree interfaces;
 
-    auto method = bus.new_method_call(
-                      service.c_str(),
-                      objPath.c_str(),
-                      "org.freedesktop.DBus.ObjectManager",
-                      "GetManagedObjects");
+    auto method = bus.new_method_call(service.c_str(), objPath.c_str(),
+                                      "org.freedesktop.DBus.ObjectManager",
+                                      "GetManagedObjects");
 
     auto reply = bus.call(method);
 
@@ -40,7 +37,7 @@
     {
         using namespace phosphor::logging;
         log<level::ERR>("Failed to get managed objects",
-                entry("PATH=%s", objPath.c_str()));
+                        entry("PATH=%s", objPath.c_str()));
     }
     else
     {
@@ -49,6 +46,5 @@
 
     return interfaces;
 }
-
 }
 }
