AW: [PATCH 4/4] kern_ntptime: sys_ntp_adjtime() does not return error when modes is 0 or MOD_TAI

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Feb 7 13:25:05 UTC 2022


On 04/02/2022 09:12, Gabriel.Moyano at dlr.de wrote:
>> What is the reason for this patch?
>>
> This change is something I would like to have a second opinion. So, thanks for the question.
> 
> Originally at the end of sys_ntp_adjtime(), if the function copyout() doesn't return an error, the value returned by ntp_is_time_error(), which variable name is retval, is saved in td->td_retval[0]. Chris modified this, being retval saved in the variable error, which is the one returned by sys_ntp_adjtime().

In libbsd, copyout() is just a memcpy() which returns 0.

> 
> Under some situations, ntp_adjtime() is called with modes = 0 just for retrieving some values (for example herehttps://github.com/ptpd/ptpd/blob/master/src/dep/sys.c#L2036, please notice that here adjtimex() is ntp_adjtime()). In those cases, returning retval may not be meaningful. Other similar situation happens when mode is MOD_TAI (https://github.com/ptpd/ptpd/blob/master/src/dep/sys.c#L2070).
> 
> This is more or less the reason. If there is better way to solve this, is welcome.

I don't think the changes make sense. The td->td_retval[0] is the return 
value of the system call if it is successful.  The "error" indicates if 
the system call was successful (== 0), otherwise it returns -1 with 
errno set to "error".

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


More information about the devel mailing list