On 03.07.23 14:55, Christian Helmuth wrote:
Hey,

On Mon, Jul 03, 2023 at 13:50:44 CEST, Duss Pirmin wrote:
The new code is much less invasive. I'm currently debugging, why 
do_settimeofday64() accesses address 0x0.
Maybe I'm calling it too early but I think, that I will figure this out.

Hm, that's unfortunate...

I already have figured out the problem. I had the call of do_settimeofday64() in the constructor of the Main object of wireguard.

At this point the kernel isn't initialized. The Linux parts can only be started after Main is constructed successfully.

Did you have a look into
read_persistent_clock64() (timekeeping.c in Linux)? Maybe this is even
less invasive than calling do_settimeofday64() as you may just
implement the function that is defined "weak" in timekeeping.c. The
related call chain is

   timekeeping_init()
   -> read_persistent_wall_and_boot_offset()  -- weak
   -> read_persistent_clock64                 -- weak

I like this even better. The coupling between the two "worlds" is reduced even more.

I'm currently testing and cleaning up the changes. Expect a patch incoming shortly.


Regards,
Pirmin

_______________________________________________
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Reply via email to