svn commit: r321985 - head/sys/ofed/drivers/infiniband/core
Hans Petter Selasky
hps at selasky.org
Fri Aug 4 06:30:54 UTC 2017
On 08/03/17 16:37, Conrad Meyer wrote:
> Hey Hans,
>
> Is it not important that the subtraction and result are evaluated
> without truncation?
Hi,
ticks is a circular counter. Assuming time = 0 and jiffies = -1U, then
"delay" becomes a very large negative value, because long is used, and
the delay <= 0 check, is no longer working like expected.
Casting to "int" or truncating is the right thing to do in this case.
--HPS
>
> Thanks,
> Conrad
>
> On Thu, Aug 3, 2017 at 2:18 AM, Hans Petter Selasky
> <hselasky at freebsd.org> wrote:
>> Author: hselasky
>> Date: Thu Aug 3 09:18:25 2017
>> New Revision: 321985
>> URL: https://svnweb.freebsd.org/changeset/base/321985
>>
>> Log:
>> Ticks are 32-bit in FreeBSD.
>>
>> MFC after: 3 days
>> Sponsored by: Mellanox Technologies
>>
>> Modified:
>> head/sys/ofed/drivers/infiniband/core/addr.c
>>
>> Modified: head/sys/ofed/drivers/infiniband/core/addr.c
>> ==============================================================================
>> --- head/sys/ofed/drivers/infiniband/core/addr.c Thu Aug 3 09:14:43 2017 (r321984)
>> +++ head/sys/ofed/drivers/infiniband/core/addr.c Thu Aug 3 09:18:25 2017 (r321985)
>> @@ -187,10 +187,10 @@ EXPORT_SYMBOL(rdma_translate_ip);
>>
>> static void set_timeout(unsigned long time)
>> {
>> - unsigned long delay;
>> + int delay; /* under FreeBSD ticks are 32-bit */
>>
>> delay = time - jiffies;
>> - if ((long)delay <= 0)
>> + if (delay <= 0)
>> delay = 1;
>>
>> mod_delayed_work(addr_wq, &work, delay);
>>
>
>
More information about the svn-src-all
mailing list