diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp
index 69595f25d369fc8f93275d883d1832c48f3e4485..e1daf3aeddc35625ceff2aae1abd1c743e8c5be9 100644
--- a/Marlin/src/lcd/menu/menu_advanced.cpp
+++ b/Marlin/src/lcd/menu/menu_advanced.cpp
@@ -107,18 +107,7 @@ void menu_backlash();
 #endif
 
 #if ENABLED(SD_FIRMWARE_UPDATE)
-
   #include "../../module/configuration_store.h"
-
-  //
-  // Toggle the SD Firmware Update state in EEPROM
-  //
-  static void _lcd_toggle_sd_update() {
-    const bool new_state = !settings.sd_update_status();
-    ui.completion_feedback(settings.set_sd_update_status(new_state));
-    ui.return_to_status();
-    if (new_state) LCD_MESSAGEPGM(MSG_RESET_PRINTER); else ui.reset_status();
-  }
 #endif
 
 #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
@@ -705,7 +694,15 @@ void menu_advanced_settings() {
 
   #if ENABLED(SD_FIRMWARE_UPDATE)
     bool sd_update_state = settings.sd_update_status();
-    MENU_ITEM_EDIT_CALLBACK(bool, MSG_SD_UPDATE, &sd_update_state, _lcd_toggle_sd_update);
+    MENU_ITEM_EDIT_CALLBACK(bool, MSG_SD_UPDATE, &sd_update_state, []{
+      //
+      // Toggle the SD Firmware Update state in EEPROM
+      //
+      const bool new_state = !settings.sd_update_status();
+      ui.completion_feedback(settings.set_sd_update_status(new_state));
+      ui.return_to_status();
+      if (new_state) LCD_MESSAGEPGM(MSG_RESET_PRINTER); else ui.reset_status();
+    });
   #endif
 
   #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp
index db5ac0531489efe0a15115f9f49598a9f4ed7b95..04cd8afeaa9569b9df6df67b23c2efbb4e92d2e1 100644
--- a/Marlin/src/lcd/menu/menu_configuration.cpp
+++ b/Marlin/src/lcd/menu/menu_configuration.cpp
@@ -123,14 +123,15 @@ static void lcd_factory_settings() {
   #include "../../module/motion.h"
   #include "../../gcode/queue.h"
 
-  void _recalc_offsets() {
-    if (active_extruder && all_axes_known()) {  // For the 2nd extruder re-home so the next tool-change gets the new offsets.
-      enqueue_and_echo_commands_P(PSTR("G28")); // In future, we can babystep the 2nd extruder (if active), making homing unnecessary.
-      active_extruder = 0;
-    }
-  }
-
   void menu_tool_offsets() {
+
+    auto _recalc_offsets = []{
+      if (active_extruder && all_axes_known()) {  // For the 2nd extruder re-home so the next tool-change gets the new offsets.
+        enqueue_and_echo_commands_P(PSTR("G28")); // In future, we can babystep the 2nd extruder (if active), making homing unnecessary.
+        active_extruder = 0;
+      }
+    };
+
     START_MENU();
     MENU_BACK(MSG_MAIN);
     #if ENABLED(DUAL_X_CARRIAGE)