]> err.no Git - linux-2.6/blobdiff - net/netfilter/xt_time.c
ipv6: Fix ip6_xmit to send fragments if ipfragok is true
[linux-2.6] / net / netfilter / xt_time.c
index e9a8794bc3ab6020c27cb6b73c24efd2b79201d1..9f328593287eabfcaf8c13e013fbc5458e61da89 100644 (file)
@@ -95,8 +95,11 @@ static inline void localtime_2(struct xtm *r, time_t time)
         */
        r->dse = time / 86400;
 
-       /* 1970-01-01 (w=0) was a Thursday (4). */
-       r->weekday = (4 + r->dse) % 7;
+       /*
+        * 1970-01-01 (w=0) was a Thursday (4).
+        * -1 and +1 map Sunday properly onto 7.
+        */
+       r->weekday = (4 + r->dse - 1) % 7 + 1;
 }
 
 static void localtime_3(struct xtm *r, time_t time)
@@ -170,7 +173,7 @@ time_mt(const struct sk_buff *skb, const struct net_device *in,
                __net_timestamp((struct sk_buff *)skb);
 
        stamp = ktime_to_ns(skb->tstamp);
-       do_div(stamp, NSEC_PER_SEC);
+       stamp = div_s64(stamp, NSEC_PER_SEC);
 
        if (info->flags & XT_TIME_LOCAL_TZ)
                /* Adjust for local timezone */
@@ -220,7 +223,7 @@ time_mt_check(const char *tablename, const void *ip,
               const struct xt_match *match, void *matchinfo,
               unsigned int hook_mask)
 {
-       struct xt_time_info *info = matchinfo;
+       const struct xt_time_info *info = matchinfo;
 
        if (info->daytime_start > XT_TIME_MAX_DAYTIME ||
            info->daytime_stop > XT_TIME_MAX_DAYTIME) {