On 2019-01-03 11:08, Janosch Frank wrote: > Always good to know what time it is. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > --- > lib/s390x/time.c | 18 ++++++++++ > lib/s390x/time.h | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > s390x/Makefile | 1 + > 3 files changed, 127 insertions(+) > create mode 100644 lib/s390x/time.c > create mode 100644 lib/s390x/time.h [...] > +/* > + * STCKE returns 16 bytes, which include the epoch, tod value and a > + * programmable field. The value has to be trimmed to be able to work > + * with it. As there's still some time to 2042, this code is not ready > + * for multi epoch values. > + */ > +static inline void stcke(char *tod) > +{ > + asm volatile( > + " stcke %[tod]\n" > + : [tod] "=Q" (tod) > + : : "cc"); > +} I'm not an inline-assembly wizzard, but the "=Q" constraint looks wrong to me here. Are you sure that this is working as expected? Maybe you could simply scratch that stcke() function if you don't need it? Thomas