Page MenuHomeFreeBSD

D55792.diff
No OneTemporary

D55792.diff

diff --git a/sys/kern/sys_timerfd.c b/sys/kern/sys_timerfd.c
--- a/sys/kern/sys_timerfd.c
+++ b/sys/kern/sys_timerfd.c
@@ -165,7 +165,7 @@
&diff, &tfd->tfd_time.it_value);
if (callout_stop(&tfd->tfd_callout) == 1) {
callout_schedule_sbt(&tfd->tfd_callout,
- tstosbt(tfd->tfd_time.it_value),
+ tstosbt_sat(tfd->tfd_time.it_value),
0, C_ABSOLUTE);
}
}
@@ -398,10 +398,10 @@
++tfd->tfd_count;
tfd->tfd_expired = true;
if (timespecisset(&tfd->tfd_time.it_interval)) {
- exp = tstosbt(tfd->tfd_time.it_value);
- interval = tstosbt(tfd->tfd_time.it_interval);
+ exp = tstosbt_sat(tfd->tfd_time.it_value);
+ interval = tstosbt_sat(tfd->tfd_time.it_interval);
now = sbinuptime();
- next = now + interval;
+ next = now > SBT_MAX - interval ? SBT_MAX : now + interval;
/* Count missed events. */
if (now > exp) {
@@ -553,7 +553,7 @@
&tfd->tfd_time.it_value);
}
callout_reset_sbt(&tfd->tfd_callout,
- tstosbt(tfd->tfd_time.it_value),
+ tstosbt_sat(tfd->tfd_time.it_value),
0, timerfd_expire, tfd, C_ABSOLUTE);
} else {
callout_stop(&tfd->tfd_callout);

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 2, 4:26 AM (2 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30067231
Default Alt Text
D55792.diff (1 KB)

Event Timeline