From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933903AbbDWNht (ORCPT ); Thu, 23 Apr 2015 09:37:49 -0400 Received: from www.linutronix.de ([62.245.132.108]:37583 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933811AbbDWNhq (ORCPT ); Thu, 23 Apr 2015 09:37:46 -0400 Date: Thu, 23 Apr 2015 15:37:57 +0200 (CEST) From: Thomas Gleixner To: Sebastian Reichel cc: Arnd Bergmann , Pavel Machek , Aaro Koskinen , Kai Vehmanen , linux-kernel@vger.kernel.org Subject: Re: [PATCH] HSI: cmt_speech: fix timestamp interface In-Reply-To: <1429204430-26807-1-git-send-email-sre@kernel.org> Message-ID: References: <2731231.Ic3nBHVb1n@wuerfel> <1429204430-26807-1-git-send-email-sre@kernel.org> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 16 Apr 2015, Sebastian Reichel wrote: > The user interface for timestamps in the new cmt_speech > driver is broken in multiple ways: > > - The layout is incompatible between 32-bit and 64-bit user > space, because of the size differences in 'struct timespec'. > This means that the driver can not work when used with 32-bit > user space on a 64-bit kernel. > > - As there are plans to change 32-bit user space to use > a 64-bit time_t type in the future, it will also be > incompatible with new 32-bit user space. > > To keep support for the user space tools written for this driver (which > have lived many years out-of-tree), the interface has been hardened to > unsigned 32-bit values. > > Reported-by: Arnd Bergmann > Signed-off-by: Sebastian Reichel > --- > drivers/hsi/clients/cmt_speech.c | 9 +++++++-- > include/uapi/linux/hsi/cs-protocol.h | 16 +++++++++++----- > 2 files changed, 18 insertions(+), 7 deletions(-) > > diff --git a/drivers/hsi/clients/cmt_speech.c b/drivers/hsi/clients/cmt_speech.c > index 4983529..67aef3f 100644 > --- a/drivers/hsi/clients/cmt_speech.c > +++ b/drivers/hsi/clients/cmt_speech.c > @@ -451,9 +451,14 @@ static void cs_hsi_read_on_control_complete(struct hsi_msg *msg) > dev_dbg(&hi->cl->device, "Read on control: %08X\n", cmd); > cs_release_cmd(msg); > if (hi->flags & CS_FEAT_TSTAMP_RX_CTRL) { > - struct timespec *tstamp = > + struct timespec tspec; > + struct cs_timestamp *tstamp = > &hi->mmap_cfg->tstamp_rx_ctrl; > - do_posix_clock_monotonic_gettime(tstamp); > + > + do_posix_clock_monotonic_gettime(&tspec); Can you please use ktime_get_ts() instead of do_posix_clock_monotonic_gettime(). I'm desperately trying to get rid of the latter, but it seems to come back in circles. Thanks, tglx