Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754042AbbKYPRP (ORCPT ); Wed, 25 Nov 2015 10:17:15 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:51623 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752518AbbKYPRL (ORCPT ); Wed, 25 Nov 2015 10:17:11 -0500 From: Arnd Bergmann To: Li Zefan , cgroups@vger.kernel.org Cc: Heena Sirwani , linux-kernel@vger.kernel.org, y2038@lists.linaro.org, tglx@linutronix.de, John Stultz Subject: [PATCH] cpuset: Replace all instances of time_t with time64_t Date: Wed, 25 Nov 2015 16:16:55 +0100 Message-ID: <2798266.9VZu01a7d1@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:RYCS816jc3OSxu6xacRcaR5ks0ZPJE4e4Nr2BAhZFv0F4f59g8T vzX9+9iYDVAGbbaUcBvLKSAkdk8pjrxE32X7ihznFg4f4covsXpwqdnUN6+jYs+ctPDAELT YrgR9rEf/ZWglwsXGcBPq5gG358L6wEQy9u9ukkUV41+Mj3NwX63vRlU4cvww5X9BgXdwkq OGq3LtP6HhmJoKt0OLSrw== X-UI-Out-Filterresults: notjunk:1;V01:K0:MFEKu1VLEeI=:pps/F95eaPIPiSg9hRwgjm vzEeXGKsOanmzd8DdLBUIKSBrM3QvHOGZpKVAWnzd8Lo1DwnRuNuXNQlBPFOja3OmK2LDUT+y hkjnfdRe71Uaxo59cOmIzkIEZdaJD4u4XBh0FKj/JVMNCsNEAxsZntdvH0YhqDf0ZGmvq8iNT nOoS0F2kFfYtmy6Zy4daycAsrRNo6s88Y92YpRk2hq4AgHFEH2KMqCWPRLsG616TK864pzmng 0QKAwYueW32tMc9jETYi74WeXTiOYgeLQFD+P4jNJfkdZjGTnKEtVStwWTTqxfGjBRPccDQTB cicDPenGKwxQWf4MfIm9IFR2IzpvMAReBhSQqrZUBr7gEHUmffqSCftsmjhEoHIm/bVq1Aqkc 1CfNZDpC+wFW8RYbzfAT/4OETR5zda4Dc3iuD0ZTzNz81QVXR9QfZ1APecRYyPv1w3eTnkAhb 5y72UwYf7Vqzso7zSSXPoE198XFKVhVCaNm7COrrP/XO6VyKK4ort4gjyxXJjIfovGgoiGgsf zAukWb/269M9U1PuV2htlmkc0GrGxG5yt9Xk9Xra51duXpBL4yAoW4DGbeEO4M/kcGlmFa6Dr Asg0FPDIN12XucLcGuzx60eW+CT8ey2p08WQGo8fj7ozc3iDDsgkZv01aVsNQ08HBEQycOcre kCmJVyaJogu9bv90/FxBRv72rX8inAP6X00zrNt0UryGdhnMall/fl4kfIbliyWwY0rYW5qUo 8+yChCCGICHgBCxg Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2674 Lines: 71 The following patch replaces all instances of time_t with time64_t i.e. change the type used for representing time from 32-bit to 64-bit. All 32-bit kernels to date use a signed 32-bit time_t type, which can only represent time until January 2038. Since embedded systems running 32-bit Linux are going to survive beyond that date, we have to change all current uses, in a backwards compatible way. The patch also changes the function get_seconds() that returns a 32-bit integer to ktime_get_seconds() that returns seconds as 64-bit integer. The patch changes the type of ticks from time_t to u32. We keep ticks as 32-bits as the function uses 32-bit arithmetic which would prove less expensive than 64-bit arithmetic and the function is expected to be called atleast once every 32 seconds. Signed-off-by: Heena Sirwani Reviewed-by: Arnd Bergmann Signed-off-by: Arnd Bergmann --- This is an older patch I still had in my queue. Who should pick it up? diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 10ae73611d80..c9ea63ff70a7 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -68,7 +69,7 @@ struct static_key cpusets_enabled_key __read_mostly = STATIC_KEY_INIT_FALSE; struct fmeter { int cnt; /* unprocessed events count */ int val; /* most recent output value */ - time_t time; /* clock (secs) when val computed */ + time64_t time; /* clock (secs) when val computed */ spinlock_t lock; /* guards read or write of above */ }; @@ -1374,7 +1375,7 @@ out: */ #define FM_COEF 933 /* coefficient for half-life of 10 secs */ -#define FM_MAXTICKS ((time_t)99) /* useless computing more ticks than this */ +#define FM_MAXTICKS ((u32)99) /* useless computing more ticks than this */ #define FM_MAXCNT 1000000 /* limit cnt to avoid overflow */ #define FM_SCALE 1000 /* faux fixed point scale */ @@ -1390,8 +1391,11 @@ static void fmeter_init(struct fmeter *fmp) /* Internal meter update - process cnt events and update value */ static void fmeter_update(struct fmeter *fmp) { - time_t now = get_seconds(); - time_t ticks = now - fmp->time; + time64_t now; + u32 ticks; + + now = ktime_get_seconds(); + ticks = now - fmp->time; if (ticks == 0) return; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/