2008-07-11 14:03:22

by David Howells

[permalink] [raw]
Subject: [PATCH] Fix netfilter xt_time's time_mt()'s use of do_div()

Fix netfilter xt_time's time_mt()'s use of do_div() on an s64 by using
div_s64() instead.

This was introduced by patch ee4411a1b1e0b679c99686629b5eab5a072ce49f.

Signed-off-by: David Howells <[email protected]>
---

net/netfilter/xt_time.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)


diff --git a/net/netfilter/xt_time.c b/net/netfilter/xt_time.c
index ed76baa..9f32859 100644
--- a/net/netfilter/xt_time.c
+++ b/net/netfilter/xt_time.c
@@ -173,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 */


2008-07-15 11:43:42

by Patrick McHardy

[permalink] [raw]
Subject: Re: [PATCH] Fix netfilter xt_time's time_mt()'s use of do_div()

David Howells wrote:
> Fix netfilter xt_time's time_mt()'s use of do_div() on an s64 by using
> div_s64() instead.
>
> This was introduced by patch ee4411a1b1e0b679c99686629b5eab5a072ce49f.

Alternatively we could use an u64 for the time. Jan, any preferences?

2008-07-15 12:08:43

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [PATCH] Fix netfilter xt_time's time_mt()'s use of do_div()


On Tuesday 2008-07-15 13:43, Patrick McHardy wrote:

> David Howells wrote:
>> Fix netfilter xt_time's time_mt()'s use of do_div() on an s64 by using
>> div_s64() instead.
>>
>> This was introduced by patch ee4411a1b1e0b679c99686629b5eab5a072ce49f.
>
> Alternatively we could use an u64 for the time. Jan, any preferences?

ktime_t and ktime_to_ns operate on signed quantities. I do not think we
should be interpreting it as unsigned.

2008-07-15 12:10:55

by Patrick McHardy

[permalink] [raw]
Subject: Re: [PATCH] Fix netfilter xt_time's time_mt()'s use of do_div()

Jan Engelhardt wrote:
> On Tuesday 2008-07-15 13:43, Patrick McHardy wrote:
>
>> David Howells wrote:
>>> Fix netfilter xt_time's time_mt()'s use of do_div() on an s64 by using
>>> div_s64() instead.
>>>
>>> This was introduced by patch ee4411a1b1e0b679c99686629b5eab5a072ce49f.
>> Alternatively we could use an u64 for the time. Jan, any preferences?
>
> ktime_t and ktime_to_ns operate on signed quantities. I do not think we
> should be interpreting it as unsigned.

OK, I've applied David's patch. Thanks.