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);
 		}
diff --git a/windows.h b/windows.h
index 54147fb..30ed68f 100644
--- a/windows.h
+++ b/windows.h
@@ -23,7 +23,7 @@
 		       uint32_t offset, uint32_t size, uint8_t val);
 void windows_close_current(struct mbox_context *context, bool set_bmc_event,
 			  uint8_t flags);
-void reset_window(struct mbox_context *context, struct window_context *window);
+void window_reset(struct mbox_context *context, struct window_context *window);
 void reset_all_windows(struct mbox_context *context, bool set_bmc_event);
 struct window_context *find_oldest_window(struct mbox_context *context);
 struct window_context *find_largest_window(struct mbox_context *context);
