Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ee303df authored by Shuya MAEDA's avatar Shuya MAEDA Committed by David S. Miller
Browse files

[PKT_SCHED]: PSCHED_TADD() and PSCHED_TADD2() can result,tv_usec >= 1000000

parent 3d3a8533
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -169,17 +169,23 @@ psched_tod_diff(int delta_sec, int bound)

#define PSCHED_TADD2(tv, delta, tv_res) \
({ \
	   int __delta = (tv).tv_usec + (delta); \
	   (tv_res).tv_sec = (tv).tv_sec; \
	   if (__delta > USEC_PER_SEC) { (tv_res).tv_sec++; __delta -= USEC_PER_SEC; } \
	   int __delta = (delta); \
	   (tv_res) = (tv); \
	   while(__delta >= USEC_PER_SEC){ \
		 (tv_res).tv_sec++; \
		 __delta -= USEC_PER_SEC; \
	   } \
	   (tv_res).tv_usec = __delta; \
})

#define PSCHED_TADD(tv, delta) \
({ \
	   (tv).tv_usec += (delta); \
	   if ((tv).tv_usec > USEC_PER_SEC) { (tv).tv_sec++; \
		 (tv).tv_usec -= USEC_PER_SEC; } \
	   int __delta = (delta); \
	   while(__delta >= USEC_PER_SEC){ \
		 (tv).tv_sec++; \
		 __delta -= USEC_PER_SEC; \
	   } \
	   (tv).tv_usec = __delta; \
})

/* Set/check that time is in the "past perfect";