Re: MIPS: bug: gettimeofday syscall broken on CI20 board

From: Vincenzo Frascino
Date: Tue Nov 26 2019 - 05:52:22 EST


Hi Nikolaus,

sorry for the delay in answering to your email but due to personal reasons I had
to pull off the linux development for few weeks.

On 17/11/2019 13:14, H. Nikolaus Schaller wrote:
> Hi Vincenzo,
>

[...]

>
> If I look at the definition of vdso_data it *is* significantly differen
> from mips_vdso_data.
>
> What I would assume is that the struct mips_vdso_data is embossed in user
> space code and therefore using vdso_data instead is breaking API.
>

vdso_data and mips_vdso_data before are not part of the ABI hence they are not
bind by a contract with the userspace.

This means that they can change at any point and if a userspace software relies
on a specific layout of these data structures is doing something wrong.

> Please advise what I should try or check to narrow down further.
>

I had a look at [1] line 200 and seems that the error you are seeing is
generated by:
if (gettimeofday(&tv, NULL) == -1) { ... }

I do not have a CI20 hence I can't do the test myself: could you please write a
small application that invokes gettimeofday() as per above and report the
behavior (I am even interested in the value returned). If we can reproduce the
problem in a smaller environment it is easier to debug and get to the solution.

[1] http://users.isc.org/~each/doxygen/bind9/isc_2unix_2time_8c-source.html

> BR and thanks,
> Nikolaus Schaller
>

Let me know.

--
Regards,
Vincenzo

Attachment: pEpkey.asc
Description: application/pgp-keys