diff --git a/extensions/openpower-pels/pel_values.cpp b/extensions/openpower-pels/pel_values.cpp
index a94606c..e52f7e1 100644
--- a/extensions/openpower-pels/pel_values.cpp
+++ b/extensions/openpower-pels/pel_values.cpp
@@ -252,8 +252,8 @@
 {
     return std::find_if(fields.begin(), fields.end(),
                         [value](const auto& entry) {
-                            return value == std::get<fieldValuePos>(entry);
-                        });
+        return value == std::get<fieldValuePos>(entry);
+    });
 }
 
 PELValues::const_iterator findByName(const std::string& name,
@@ -262,8 +262,8 @@
 {
     return std::find_if(fields.begin(), fields.end(),
                         [&name](const auto& entry) {
-                            return name == std::get<registryNamePos>(entry);
-                        });
+        return name == std::get<registryNamePos>(entry);
+    });
 }
 
 /**
@@ -357,13 +357,13 @@
                                           const pel_values::PELValues& table)
 {
     std::vector<std::string> foundValues;
-    std::for_each(
-        table.begin(), table.end(), [&value, &foundValues](const auto& entry) {
-            if (value & std::get<fieldValuePos>(entry))
-            {
-                foundValues.push_back(std::get<descriptionPos>(entry));
-            }
-        });
+    std::for_each(table.begin(), table.end(),
+                  [&value, &foundValues](const auto& entry) {
+        if (value & std::get<fieldValuePos>(entry))
+        {
+            foundValues.push_back(std::get<descriptionPos>(entry));
+        }
+    });
     return foundValues;
 }
 
