pageexec report an oops for tcp_lp_owd_calculator(). This is due to
tcp_lp_remote_hz_estimator can return 0.

This patch fix the handling of lp->flag, so will set lp->flag as FALSE
if rhz <= 0

Signed-off-by: Wong Hoi Sing Edison <[EMAIL PROTECTED]>

---

diff -urpN 2.6.18-rc6/tcp_lp.c tcp-lp/tcp_lp.c
--- 2.6.18-rc6/tcp_lp.c 2006-09-04 16:21:00.000000000 +0800
+++ tcp-lp/tcp_lp.c     2006-09-04 17:22:19.000000000 +0800
@@ -153,14 +157,17 @@ static u32 tcp_lp_remote_hz_estimator(st
        if (m < 0)
                m = -m;

-       if (rhz != 0) {
+       if (rhz > 0) {
                m -= rhz >> 6;    /* m is now error in remote HZ est */
                rhz += m;       /* 63/64 old + 1/64 new */
        } else
                rhz = m << 6;

        /* record time for successful remote HZ calc */
-       lp->flag |= LP_VALID_RHZ;
+       if (rhz > 0)
+               lp->flag |= LP_VALID_RHZ;
+       else
+               lp->flag &= ~LP_VALID_RHZ;

 out:
        /* record reference time stamp */

--
VGER BF report: U 0.500057
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to