aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasant Hegde <hegdevasant@linux.vnet.ibm.com>2020-12-18 17:40:38 +0530
committerVasant Hegde <hegdevasant@linux.vnet.ibm.com>2021-09-30 16:17:55 +0530
commit0b928793cec98b9e8857d014782c0dd4b5d939ec (patch)
tree926ecf37691292b537ccb278c45de930b80ae82b
parenta5fd1e827bdc9cc52233d9cffdadfaacbf60268d (diff)
downloadskiboot-0b928793cec98b9e8857d014782c0dd4b5d939ec.zip
skiboot-0b928793cec98b9e8857d014782c0dd4b5d939ec.tar.gz
skiboot-0b928793cec98b9e8857d014782c0dd4b5d939ec.tar.bz2
SBE: Account cancelled timer request
[ Upstream commit b44c7594523d20945179e497c45ec9007981ac75 ] Currently we are not accounting cancelled timer request. So in some corner cases we may schedule new timer request with new-timer-value > inflight-timer-value. Lets explicit check new_target value with inflight timer value. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
-rw-r--r--hw/sbe-p9.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/sbe-p9.c b/hw/sbe-p9.c
index 362ef54..930c9ab 100644
--- a/hw/sbe-p9.c
+++ b/hw/sbe-p9.c
@@ -809,6 +809,9 @@ static void p9_sbe_timer_schedule(void)
u64 tb_cnt, now = mftb();
if (sbe_timer_in_progress) {
+ if (sbe_timer_target >= sbe_last_gen_stamp)
+ return;
+
if (now >= sbe_last_gen_stamp)
return;