diff --git a/windows.c b/windows.c
index 2ec8b9a..729a4d3 100644
--- a/windows.c
+++ b/windows.c
@@ -406,11 +406,11 @@
 }
 
 /*
- * reset_window() - Reset a window context to a well defined default state
+ * window_reset() - Reset a window context to a well defined default state
  * @context:   	The mbox context pointer
  * @window:	The window to reset
  */
-void reset_window(struct mbox_context *context, struct window_context *window)
+void window_reset(struct mbox_context *context, struct window_context *window)
 {
 	window->flash_offset = FLASH_OFFSET_UNINIT;
 	window->size = context->windows.default_size;
@@ -437,7 +437,7 @@
 		windows_close_current(context, set_bmc_event, FLAGS_NONE);
 	}
 	for (i = 0; i < context->windows.num; i++) {
-		reset_window(context, &context->windows.window[i]);
+		window_reset(context, &context->windows.window[i]);
 	}
 
 	context->windows.max_age = 0;
@@ -568,7 +568,7 @@
 	if (!cur) {
 		MSG_DBG("No uninitialised window, evicting one\n");
 		cur = find_oldest_window(context);
-		reset_window(context, cur);
+		window_reset(context, cur);
 	}
 
 /*
@@ -622,7 +622,7 @@
 	rc = flash_copy(context, offset, cur->mem, cur->size);
 	if (rc < 0) {
 		/* We don't know how much we've copied -> better reset window */
-		reset_window(context, cur);
+		window_reset(context, cur);
 		return rc;
 	}
 	/*
@@ -653,7 +653,7 @@
 			do {
 				tmp = search_windows(context, i, false);
 				if (tmp) {
-					reset_window(context, tmp);
+					window_reset(context, tmp);
 				}
 			} while (tmp);
 		}
