it to 0. Some callers (e.g. nanosleep1()) expect *start to always be
initialized and would use random values from stack otherwise.
While there, remove an always-true conditionnal.
-assume (KASSERT) that the timeval given is normalized, and remove
some partial fixup which I don't see what it is good for
(I'm ready to back that out if someone tells a reason)
-catch overflows due to conversion of time_t (from tv_sec) to
integer -- this function doesn't do 64-bit arithmetics (which makes
sense because relative times which don't fit into 32 bits can be
considered nonsense here), and before a huge tv_sec could lead to
a zero hz result, violating the caller's assumptions (in particular
trigger a diagnostic panic in abstimeout2timo())
timeout and thread would have blocked, instead of ETIMEDOUT. Change is
to abstimeout2timo(), thus also affects _lwp_park(2).
Reported by Stathis Kamperis some months ago.