diff --git a/src/erase/sanitize.cpp b/src/erase/sanitize.cpp
index 26e39fb..ac1770d 100644
--- a/src/erase/sanitize.cpp
+++ b/src/erase/sanitize.cpp
@@ -21,7 +21,6 @@
 {
 
 constexpr uint32_t mmcSwitch = 6;
-constexpr uint32_t mmcSendExtCsd = 8;
 constexpr uint32_t mmcSwitchModeWriteByte = 0x03;
 constexpr uint32_t extCsdSanitizeStart = 165;
 constexpr uint32_t extCsdCmdSetNormal = (1 << 0);
@@ -32,7 +31,6 @@
 constexpr uint32_t mmcRspOpcode = (1 << 4);
 
 constexpr uint32_t mmcCmdAc = (0 << 5);
-constexpr uint32_t mmcCmdAdtc = (1 << 5);
 
 constexpr uint32_t mmcRspSpiS1 = (1 << 7);
 constexpr uint32_t mmcRspSpiBusy = (1 << 10);
diff --git a/src/main.cpp b/src/main.cpp
index 2f93899..578d505 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -31,14 +31,14 @@
  * more types of storage devices.
  */
 void createStorageObjects(
-    boost::asio::io_context& io, sdbusplus::asio::object_server& objectServer,
+    sdbusplus::asio::object_server& objectServer,
     boost::container::flat_map<
         std::string, std::unique_ptr<estoraged::EStoraged>>& storageObjects,
     std::shared_ptr<sdbusplus::asio::connection>& dbusConnection)
 {
     auto getter = std::make_shared<estoraged::GetStorageConfiguration>(
         dbusConnection,
-        [&io, &objectServer, &storageObjects](
+        [&objectServer, &storageObjects](
             const estoraged::ManagedStorageType& storageConfigurations) {
             size_t numConfigObj = storageConfigurations.size();
             if (numConfigObj > 1)
@@ -124,9 +124,8 @@
                                    std::unique_ptr<estoraged::EStoraged>>
             storageObjects;
 
-        boost::asio::post(io, [&]() {
-            createStorageObjects(io, server, storageObjects, conn);
-        });
+        boost::asio::post(
+            io, [&]() { createStorageObjects(server, storageObjects, conn); });
 
         /*
          * Set up an event handler to process any new configuration objects
@@ -160,7 +159,7 @@
                             lg2::error("timer error");
                             return;
                         }
-                        createStorageObjects(io, server, storageObjects, conn);
+                        createStorageObjects(server, storageObjects, conn);
                     });
             };
 
