From 0d4205e6aa711c50b3a94a91d8159219c77e102c Mon Sep 17 00:00:00 2001 From: Adam Bookatz Date: Thu, 3 Dec 2020 23:52:02 -0800 Subject: [PATCH] Fix BatteryExternalStatsWorker UPDATE_ALL usage In some places, BESW compares the update flag against UPDATE_ALL in a way that will always be true, instead of seeing if it is actually equal to it. This would have led to far more frequent updateKernelWakelocksLocked and updateKernelMemoryBandwidthLocked calls than intended. Test: n/a Bug: 174818202 Change-Id: I19a5cf80eee0768989dcea0c2f205dc9f749ac9f --- .../com/android/server/am/BatteryExternalStatsWorker.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java index 93dd1aa37a11f..b3d48bb66ac98 100644 --- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java +++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java @@ -345,7 +345,7 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { mUidsToRemove.clear(); mCurrentFuture = null; mUseLatestStates = true; - if ((updateFlags & UPDATE_ALL) != 0) { + if (updateFlags == UPDATE_ALL) { cancelSyncDueToBatteryLevelChangeLocked(); } if ((updateFlags & UPDATE_CPU) != 0) { @@ -517,7 +517,7 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { mStats.updateCpuTimeLocked(onBattery, onBatteryScreenOff); } - if ((updateFlags & UPDATE_ALL) != 0) { + if (updateFlags == UPDATE_ALL) { mStats.updateKernelWakelocksLocked(elapsedRealtimeUs); mStats.updateKernelMemoryBandwidthLocked(elapsedRealtimeUs); }