From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753251AbdLHQxf (ORCPT ); Fri, 8 Dec 2017 11:53:35 -0500 Received: from imap1.codethink.co.uk ([176.9.8.82]:34760 "EHLO imap1.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752530AbdLHQxc (ORCPT ); Fri, 8 Dec 2017 11:53:32 -0500 Message-ID: <1512752007.18523.254.camel@codethink.co.uk> Subject: Re: [Y2038] [PATCH 5/9] y2038: introduce CONFIG_64BIT_TIME From: Ben Hutchings To: Deepa Dinamani , tglx@linutronix.de, john.stultz@linaro.org Cc: y2038@lists.linaro.org, linux-kernel@vger.kernel.org, arnd@arndb.de Date: Fri, 08 Dec 2017 16:53:27 +0000 In-Reply-To: <20171110224259.15930-6-deepa.kernel@gmail.com> References: <20171110224259.15930-1-deepa.kernel@gmail.com> <20171110224259.15930-6-deepa.kernel@gmail.com> Organization: Codethink Ltd. Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2017-11-10 at 14:42 -0800, Deepa Dinamani wrote: > From: Arnd Bergmann > > There are a total of 53 system calls (aside from ioctl) that pass a time_t > or derived data structure as an argument, and in order to extend time_t > to 64-bit, we have to replace them with new system calls and keep providing > backwards compatibility. > > To avoid adding completely new and untested code for this purpose, we > introduce a new CONFIG_64BIT_TIME symbol. Every architecture that supports > new 64 bit time_t syscalls enables this config via ARCH_HAS_64BIT_TIME. > > After this is done for all architectures, the CONFIG_64BIT_TIME symbol > can be made a user-selected option, to enable users to build a kernel > that only provides y2038-safe system calls by making 32 time_t syscalls > conditionally included based on the above config. I don't understand why we would want to change the semantics of CONFIG_64BIT_TIME symbol from "enable 64-bit time support" to "disable 32-bit time support". Why not add two config symbols: config 32BIT_TIME def_bool COMPAT || !64BIT config 64BIT_TIME def_bool ARCH_HAS_64BIT_TIME and then make 32BIT_TIME user-configurable later? > Signed-off-by: Arnd Bergmann > Signed-off-by: Deepa Dinamani > --- >  arch/Kconfig | 11 +++++++++++ >  1 file changed, 11 insertions(+) > > diff --git a/arch/Kconfig b/arch/Kconfig > index 8911ff37335a..3266ac1a4ff7 100644 > --- a/arch/Kconfig > +++ b/arch/Kconfig > @@ -875,6 +875,17 @@ config OLD_SIGACTION >  config COMPAT_OLD_SIGACTION >   bool >   > +config ARCH_HAS_64BIT_TIME > + def_bool n > + > +config CONFIG_64BIT_TIME The CONFIG_ prefix is added by kconfig scripts and shouldn't be used in the Kconfig file. Ben. > + def_bool ARCH_HAS_64BIT_TIME > + help > +   This should be selected by all architectures that need to support > +   new system calls with a 64-bit time_t. This is relevant on all 32-bit > +   architectures, and 64-bit architectures as part of compat syscall > +   handling. > + >  config ARCH_NO_COHERENT_DMA_MMAP >   bool >   -- Ben Hutchings Software Developer, Codethink Ltd.