Ver Fonte

posix cpu timers: fix timer ordering

Pointed out by Oleg Nesterov, who has been walking over the code
forwards and backwards.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds há 19 anos atrás
pai
commit
70ab81c2ed
1 ficheiros alterados com 4 adições e 6 exclusões
  1. 4 6
      kernel/posix-cpu-timers.c

+ 4 - 6
kernel/posix-cpu-timers.c

@@ -576,17 +576,15 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now)
 	listpos = head;
 	listpos = head;
 	if (CPUCLOCK_WHICH(timer->it_clock) == CPUCLOCK_SCHED) {
 	if (CPUCLOCK_WHICH(timer->it_clock) == CPUCLOCK_SCHED) {
 		list_for_each_entry(next, head, entry) {
 		list_for_each_entry(next, head, entry) {
-			if (next->expires.sched > nt->expires.sched) {
-				listpos = &next->entry;
+			if (next->expires.sched > nt->expires.sched)
 				break;
 				break;
-			}
+			listpos = &next->entry;
 		}
 		}
 	} else {
 	} else {
 		list_for_each_entry(next, head, entry) {
 		list_for_each_entry(next, head, entry) {
-			if (cputime_gt(next->expires.cpu, nt->expires.cpu)) {
-				listpos = &next->entry;
+			if (cputime_gt(next->expires.cpu, nt->expires.cpu))
 				break;
 				break;
-			}
+			listpos = &next->entry;
 		}
 		}
 	}
 	}
 	list_add(&nt->entry, listpos);
 	list_add(&nt->entry, listpos);