diff mbox series

um: time-travel: avoid multiple identical propagations

Message ID 20201204123433.01282063e81f.I6cdf9966c9d253628195b50d800c8a688f829b46@changeid
State Accepted
Headers show
Series um: time-travel: avoid multiple identical propagations | expand

Commit Message

Johannes Berg Dec. 4, 2020, 11:34 a.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

If there is some kind of interrupt negotation or such then
it may happen that we send an update message multiple times,
avoid that in the interest of efficiency by storing the last
transmitted value and only sending a new update if it's not
the same as the last update.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 arch/um/kernel/time.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
index 5ac084deac7e..2c1c04f4ef27 100644
--- a/arch/um/kernel/time.c
+++ b/arch/um/kernel/time.c
@@ -198,7 +198,13 @@  static void time_travel_ext_update_request(unsigned long long time)
 
 void __time_travel_propagate_time(void)
 {
+	static unsigned long long last_propagated;
+
+	if (last_propagated == time_travel_time)
+		return;
+
 	time_travel_ext_req(UM_TIMETRAVEL_UPDATE, time_travel_time);
+	last_propagated = time_travel_time;
 }
 EXPORT_SYMBOL_GPL(__time_travel_propagate_time);