From: Herbert Xu <herbert@gondor.apana.org.au> Date: Sun, 1 Jun 2003 17:16:41 +1000 Sorry, you've lost me there. Consider my version of the fix attached below. The idea is, if "use_time" is currently unset, the earliest value it could possibly be set to is "now". Therefore, the earliest a hard/soft use expiration could hit is that many seconds from "now". Understood? --- net/xfrm/xfrm_state.c.~1~ Sun Jun 1 00:54:53 2003 +++ net/xfrm/xfrm_state.c Sun Jun 1 00:55:38 2003 @@ -112,9 +112,9 @@ if (tmo < next) next = tmo; } - if (x->lft.hard_use_expires_seconds && x->curlft.use_time) { + if (x->lft.hard_use_expires_seconds) { long tmo = x->lft.hard_use_expires_seconds + - x->curlft.use_time - now; + (x->curlft.use_time ? : now) - now; if (tmo <= 0) goto expired; if (tmo < next) @@ -130,9 +130,9 @@ else if (tmo < next) next = tmo; } - if (x->lft.soft_use_expires_seconds && x->curlft.use_time) { + if (x->lft.soft_use_expires_seconds) { long tmo = x->lft.soft_use_expires_seconds + - x->curlft.use_time - now; + (x->curlft.use_time ? : now) - now; if (tmo <= 0) warn = 1; else if (tmo < next) - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html