From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepa Dinamani Subject: [PATCH v2 1/7] time: Delete do_sys_setimeofday() Date: Sun, 26 Mar 2017 12:04:12 -0700 Message-ID: <1490555058-4603-2-git-send-email-deepa.kernel@gmail.com> References: <1490555058-4603-1-git-send-email-deepa.kernel@gmail.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490555058-4603-1-git-send-email-deepa.kernel@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" Content-Type: text/plain; charset="us-ascii" To: tglx@linutronix.de, linux-kernel@vger.kernel.org Cc: y2038@lists.linaro.org, john.stultz@linaro.org, arnd@arndb.de, linux-alpha@vger.kernel.org c3RydWN0IHRpbWVzcGVjIGlzIG5vdCB5MjAzOCBzYWZlIG9uIDMyIGJpdCBtYWNoaW5lcwphbmQg bmVlZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCBzdHJ1Y3QgdGltZXNwZWM2NC4KCmRvX3N5c190aW1l b2ZkYXkoKSBpcyBqdXN0IGEgd3JhcHBlciBmdW5jdGlvbi4KUmVwbGFjZSBhbGwgY2FsbHMgdG8g dGhpcyBmdW5jdGlvbiB3aXRoIGRpcmVjdApjYWxscyB0byBkb19zeXNfdGltZW9mZGF5NjQoKSBp bnN0ZWFkIGFuZCBkZWxldGUKZG9fc3lzX3RpbWVvZmRheSgpLgoKU2lnbmVkLW9mZi1ieTogRGVl cGEgRGluYW1hbmkgPGRlZXBhLmtlcm5lbEBnbWFpbC5jb20+CkNjOiBsaW51eC1hbHBoYUB2Z2Vy Lmtlcm5lbC5vcmcKLS0tCiBhcmNoL2FscGhhL2tlcm5lbC9vc2Zfc3lzLmMgfCAgNCArKystCiBp bmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmggfCAxNSAtLS0tLS0tLS0tLS0tLS0KIGtlcm5lbC9j b21wYXQuYyAgICAgICAgICAgICB8ICA0ICsrLS0KIGtlcm5lbC90aW1lL3Bvc2l4LXN0dWJzLmMg ICB8ICA1ICsrKystCiBrZXJuZWwvdGltZS9wb3NpeC10aW1lcnMuYyAgfCAgNSArKysrLQoga2Vy bmVsL3RpbWUvdGltZS5jICAgICAgICAgIHwgIDQgKystLQogNiBmaWxlcyBjaGFuZ2VkLCAxNSBp bnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tl cm5lbC9vc2Zfc3lzLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9vc2Zfc3lzLmMKaW5kZXggMGI5NjEw OS4uOWRlNDdhOSAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvb3NmX3N5cy5jCisrKyBi L2FyY2gvYWxwaGEva2VybmVsL29zZl9zeXMuYwpAQCAtMTAxNiw2ICsxMDE2LDcgQEAgU1lTQ0FM TF9ERUZJTkUyKG9zZl9nZXR0aW1lb2ZkYXksIHN0cnVjdCB0aW1ldmFsMzIgX191c2VyICosIHR2 LAogU1lTQ0FMTF9ERUZJTkUyKG9zZl9zZXR0aW1lb2ZkYXksIHN0cnVjdCB0aW1ldmFsMzIgX191 c2VyICosIHR2LAogCQlzdHJ1Y3QgdGltZXpvbmUgX191c2VyICosIHR6KQogeworCXN0cnVjdCB0 aW1lc3BlYzY0IGt0czY0OwogCXN0cnVjdCB0aW1lc3BlYyBrdHM7CiAJc3RydWN0IHRpbWV6b25l IGt0ejsKIApAQCAtMTAyMywxMyArMTAyNCwxNCBAQCBTWVNDQUxMX0RFRklORTIob3NmX3NldHRp bWVvZmRheSwgc3RydWN0IHRpbWV2YWwzMiBfX3VzZXIgKiwgdHYsCiAJCWlmIChnZXRfdHYzMigo c3RydWN0IHRpbWV2YWwgKikma3RzLCB0dikpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJa3RzLnR2 X25zZWMgKj0gMTAwMDsKKwkJa3RzNjQgPSB0aW1lc3BlY190b190aW1lc3BlYzY0KGt0cyk7CiAJ fQogCWlmICh0eikgewogCQlpZiAoY29weV9mcm9tX3VzZXIoJmt0eiwgdHosIHNpemVvZigqdHop KSkKIAkJCXJldHVybiAtRUZBVUxUOwogCX0KIAotCXJldHVybiBkb19zeXNfc2V0dGltZW9mZGF5 KHR2ID8gJmt0cyA6IE5VTEwsIHR6ID8gJmt0eiA6IE5VTEwpOworCXJldHVybiBkb19zeXNfc2V0 dGltZW9mZGF5NjQodHYgPyAma3RzNjQgOiBOVUxMLCB0eiA/ICZrdHogOiBOVUxMKTsKIH0KIAog YXNtbGlua2FnZSBsb25nIHN5c19uaV9wb3NpeF90aW1lcnModm9pZCk7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmggYi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgK aW5kZXggYjU5OGNiYy4uMzYxN2E3OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90aW1la2Vl cGluZy5oCisrKyBiL2luY2x1ZGUvbGludXgvdGltZWtlZXBpbmcuaApAQCAtMTksMjEgKzE5LDYg QEAgZXh0ZXJuIHZvaWQgZG9fZ2V0dGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICp0dik7CiBleHRl cm4gaW50IGRvX3NldHRpbWVvZmRheTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CiBl eHRlcm4gaW50IGRvX3N5c19zZXR0aW1lb2ZkYXk2NChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAq dHYsCiAJCQkJIGNvbnN0IHN0cnVjdCB0aW1lem9uZSAqdHopOwotc3RhdGljIGlubGluZSBpbnQg ZG9fc3lzX3NldHRpbWVvZmRheShjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnR2LAotCQkJCSAgICAg IGNvbnN0IHN0cnVjdCB0aW1lem9uZSAqdHopCi17Ci0Jc3RydWN0IHRpbWVzcGVjNjQgdHM2NDsK LQotCWlmICghdHYpCi0JCXJldHVybiBkb19zeXNfc2V0dGltZW9mZGF5NjQoTlVMTCwgdHopOwot Ci0JaWYgKCF0aW1lc3BlY192YWxpZCh0dikpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JdHM2NCA9 IHRpbWVzcGVjX3RvX3RpbWVzcGVjNjQoKnR2KTsKLQlyZXR1cm4gZG9fc3lzX3NldHRpbWVvZmRh eTY0KCZ0czY0LCB0eik7Ci19Ci0KIC8qCiAgKiBLZXJuZWwgdGltZSBhY2Nlc3NvcnMKICAqLwpk aWZmIC0tZ2l0IGEva2VybmVsL2NvbXBhdC5jIGIva2VybmVsL2NvbXBhdC5jCmluZGV4IDE5YWVj NWQuLmUyOWEwMWEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jb21wYXQuYworKysgYi9rZXJuZWwvY29t cGF0LmMKQEAgLTEwOSw3ICsxMDksNyBAQCBDT01QQVRfU1lTQ0FMTF9ERUZJTkUyKHNldHRpbWVv ZmRheSwgc3RydWN0IGNvbXBhdF90aW1ldmFsIF9fdXNlciAqLCB0diwKIAkJICAgICAgIHN0cnVj dCB0aW1lem9uZSBfX3VzZXIgKiwgdHopCiB7CiAJc3RydWN0IHRpbWV2YWwgdXNlcl90djsKLQlz dHJ1Y3QgdGltZXNwZWMJbmV3X3RzOworCXN0cnVjdCB0aW1lc3BlYzY0IG5ld190czsKIAlzdHJ1 Y3QgdGltZXpvbmUgbmV3X3R6OwogCiAJaWYgKHR2KSB7CkBAIC0xMjMsNyArMTIzLDcgQEAgQ09N UEFUX1NZU0NBTExfREVGSU5FMihzZXR0aW1lb2ZkYXksIHN0cnVjdCBjb21wYXRfdGltZXZhbCBf X3VzZXIgKiwgdHYsCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKLQlyZXR1cm4gZG9fc3lzX3Nl dHRpbWVvZmRheSh0diA/ICZuZXdfdHMgOiBOVUxMLCB0eiA/ICZuZXdfdHogOiBOVUxMKTsKKwly ZXR1cm4gZG9fc3lzX3NldHRpbWVvZmRheTY0KHR2ID8gJm5ld190cyA6IE5VTEwsIHR6ID8gJm5l d190eiA6IE5VTEwpOwogfQogCiBzdGF0aWMgaW50IF9fY29tcGF0X2dldF90aW1ldmFsKHN0cnVj dCB0aW1ldmFsICp0diwgY29uc3Qgc3RydWN0IGNvbXBhdF90aW1ldmFsIF9fdXNlciAqY3R2KQpk aWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvcG9zaXgtc3R1YnMuYyBiL2tlcm5lbC90aW1lL3Bvc2l4 LXN0dWJzLmMKaW5kZXggY2Q2NzE2ZS4uOTVhMWIxZiAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUv cG9zaXgtc3R1YnMuYworKysgYi9rZXJuZWwvdGltZS9wb3NpeC1zdHVicy5jCkBAIC00OSwxMyAr NDksMTYgQEAgU1lTX05JKGFsYXJtKTsKIFNZU0NBTExfREVGSU5FMihjbG9ja19zZXR0aW1lLCBj b25zdCBjbG9ja2lkX3QsIHdoaWNoX2Nsb2NrLAogCQljb25zdCBzdHJ1Y3QgdGltZXNwZWMgX191 c2VyICosIHRwKQogeworCXN0cnVjdCB0aW1lc3BlYzY0IG5ld190cDY0OwogCXN0cnVjdCB0aW1l c3BlYyBuZXdfdHA7CiAKIAlpZiAod2hpY2hfY2xvY2sgIT0gQ0xPQ0tfUkVBTFRJTUUpCiAJCXJl dHVybiAtRUlOVkFMOwogCWlmIChjb3B5X2Zyb21fdXNlcigmbmV3X3RwLCB0cCwgc2l6ZW9mICgq dHApKSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JcmV0dXJuIGRvX3N5c19zZXR0aW1lb2ZkYXkoJm5l d190cCwgTlVMTCk7CisKKwluZXdfdHA2NCA9IHRpbWVzcGVjX3RvX3RpbWVzcGVjNjQobmV3X3Rw KTsKKwlyZXR1cm4gZG9fc3lzX3NldHRpbWVvZmRheTY0KCZuZXdfdHA2NCwgTlVMTCk7CiB9CiAK IFNZU0NBTExfREVGSU5FMihjbG9ja19nZXR0aW1lLCBjb25zdCBjbG9ja2lkX3QsIHdoaWNoX2Ns b2NrLApkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvcG9zaXgtdGltZXJzLmMgYi9rZXJuZWwvdGlt ZS9wb3NpeC10aW1lcnMuYwppbmRleCA1MGE2YTQ3Li5mMjE1ZWY3IDEwMDY0NAotLS0gYS9rZXJu ZWwvdGltZS9wb3NpeC10aW1lcnMuYworKysgYi9rZXJuZWwvdGltZS9wb3NpeC10aW1lcnMuYwpA QCAtMjE0LDcgKzIxNCwxMCBAQCBzdGF0aWMgaW50IHBvc2l4X2Nsb2NrX3JlYWx0aW1lX2dldChj bG9ja2lkX3Qgd2hpY2hfY2xvY2ssIHN0cnVjdCB0aW1lc3BlYyAqdHApCiBzdGF0aWMgaW50IHBv c2l4X2Nsb2NrX3JlYWx0aW1lX3NldChjb25zdCBjbG9ja2lkX3Qgd2hpY2hfY2xvY2ssCiAJCQkJ ICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdHApCiB7Ci0JcmV0dXJuIGRvX3N5c19zZXR0aW1l b2ZkYXkodHAsIE5VTEwpOworCXN0cnVjdCB0aW1lc3BlYzY0IHRwNjQ7CisKKwl0cDY0ID0gdGlt ZXNwZWNfdG9fdGltZXNwZWM2NCgqdHApOworCXJldHVybiBkb19zeXNfc2V0dGltZW9mZGF5NjQo JnRwNjQsIE5VTEwpOwogfQogCiBzdGF0aWMgaW50IHBvc2l4X2Nsb2NrX3JlYWx0aW1lX2Fkaihj b25zdCBjbG9ja2lkX3Qgd2hpY2hfY2xvY2ssCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS90aW1l LmMgYi9rZXJuZWwvdGltZS90aW1lLmMKaW5kZXggMjViZGQyNS4uNjU3NGJiYSAxMDA2NDQKLS0t IGEva2VybmVsL3RpbWUvdGltZS5jCisrKyBiL2tlcm5lbC90aW1lL3RpbWUuYwpAQCAtMTkzLDgg KzE5Myw4IEBAIGludCBkb19zeXNfc2V0dGltZW9mZGF5NjQoY29uc3Qgc3RydWN0IHRpbWVzcGVj NjQgKnR2LCBjb25zdCBzdHJ1Y3QgdGltZXpvbmUgKnR6CiBTWVNDQUxMX0RFRklORTIoc2V0dGlt ZW9mZGF5LCBzdHJ1Y3QgdGltZXZhbCBfX3VzZXIgKiwgdHYsCiAJCXN0cnVjdCB0aW1lem9uZSBf X3VzZXIgKiwgdHopCiB7CisJc3RydWN0IHRpbWVzcGVjNjQgbmV3X3RzOwogCXN0cnVjdCB0aW1l dmFsIHVzZXJfdHY7Ci0Jc3RydWN0IHRpbWVzcGVjCW5ld190czsKIAlzdHJ1Y3QgdGltZXpvbmUg bmV3X3R6OwogCiAJaWYgKHR2KSB7CkBAIC0yMTIsNyArMjEyLDcgQEAgU1lTQ0FMTF9ERUZJTkUy KHNldHRpbWVvZmRheSwgc3RydWN0IHRpbWV2YWwgX191c2VyICosIHR2LAogCQkJcmV0dXJuIC1F RkFVTFQ7CiAJfQogCi0JcmV0dXJuIGRvX3N5c19zZXR0aW1lb2ZkYXkodHYgPyAmbmV3X3RzIDog TlVMTCwgdHogPyAmbmV3X3R6IDogTlVMTCk7CisJcmV0dXJuIGRvX3N5c19zZXR0aW1lb2ZkYXk2 NCh0diA/ICZuZXdfdHMgOiBOVUxMLCB0eiA/ICZuZXdfdHogOiBOVUxMKTsKIH0KIAogU1lTQ0FM TF9ERUZJTkUxKGFkanRpbWV4LCBzdHJ1Y3QgdGltZXggX191c2VyICosIHR4Y19wKQotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClkyMDM4 IG1haWxpbmcgbGlzdApZMjAzOEBsaXN0cy5saW5hcm8ub3JnCmh0dHBzOi8vbGlzdHMubGluYXJv Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3kyMDM4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751938AbdCZTOB (ORCPT ); Sun, 26 Mar 2017 15:14:01 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:34882 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751483AbdCZTNw (ORCPT ); Sun, 26 Mar 2017 15:13:52 -0400 From: Deepa Dinamani To: tglx@linutronix.de, linux-kernel@vger.kernel.org Cc: john.stultz@linaro.org, arnd@arndb.de, y2038@lists.linaro.org, linux-alpha@vger.kernel.org Subject: [PATCH v2 1/7] time: Delete do_sys_setimeofday() Date: Sun, 26 Mar 2017 12:04:12 -0700 Message-Id: <1490555058-4603-2-git-send-email-deepa.kernel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1490555058-4603-1-git-send-email-deepa.kernel@gmail.com> References: <1490555058-4603-1-git-send-email-deepa.kernel@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org struct timespec is not y2038 safe on 32 bit machines and needs to be replaced with struct timespec64. do_sys_timeofday() is just a wrapper function. Replace all calls to this function with direct calls to do_sys_timeofday64() instead and delete do_sys_timeofday(). Signed-off-by: Deepa Dinamani Cc: linux-alpha@vger.kernel.org --- arch/alpha/kernel/osf_sys.c | 4 +++- include/linux/timekeeping.h | 15 --------------- kernel/compat.c | 4 ++-- kernel/time/posix-stubs.c | 5 ++++- kernel/time/posix-timers.c | 5 ++++- kernel/time/time.c | 4 ++-- 6 files changed, 15 insertions(+), 22 deletions(-) diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 0b96109..9de47a9 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c @@ -1016,6 +1016,7 @@ SYSCALL_DEFINE2(osf_gettimeofday, struct timeval32 __user *, tv, SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv, struct timezone __user *, tz) { + struct timespec64 kts64; struct timespec kts; struct timezone ktz; @@ -1023,13 +1024,14 @@ SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv, if (get_tv32((struct timeval *)&kts, tv)) return -EFAULT; kts.tv_nsec *= 1000; + kts64 = timespec_to_timespec64(kts); } if (tz) { if (copy_from_user(&ktz, tz, sizeof(*tz))) return -EFAULT; } - return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); + return do_sys_settimeofday64(tv ? &kts64 : NULL, tz ? &ktz : NULL); } asmlinkage long sys_ni_posix_timers(void); diff --git a/include/linux/timekeeping.h b/include/linux/timekeeping.h index b598cbc..3617a78 100644 --- a/include/linux/timekeeping.h +++ b/include/linux/timekeeping.h @@ -19,21 +19,6 @@ extern void do_gettimeofday(struct timeval *tv); extern int do_settimeofday64(const struct timespec64 *ts); extern int do_sys_settimeofday64(const struct timespec64 *tv, const struct timezone *tz); -static inline int do_sys_settimeofday(const struct timespec *tv, - const struct timezone *tz) -{ - struct timespec64 ts64; - - if (!tv) - return do_sys_settimeofday64(NULL, tz); - - if (!timespec_valid(tv)) - return -EINVAL; - - ts64 = timespec_to_timespec64(*tv); - return do_sys_settimeofday64(&ts64, tz); -} - /* * Kernel time accessors */ diff --git a/kernel/compat.c b/kernel/compat.c index 19aec5d..e29a01a 100644 --- a/kernel/compat.c +++ b/kernel/compat.c @@ -109,7 +109,7 @@ COMPAT_SYSCALL_DEFINE2(settimeofday, struct compat_timeval __user *, tv, struct timezone __user *, tz) { struct timeval user_tv; - struct timespec new_ts; + struct timespec64 new_ts; struct timezone new_tz; if (tv) { @@ -123,7 +123,7 @@ COMPAT_SYSCALL_DEFINE2(settimeofday, struct compat_timeval __user *, tv, return -EFAULT; } - return do_sys_settimeofday(tv ? &new_ts : NULL, tz ? &new_tz : NULL); + return do_sys_settimeofday64(tv ? &new_ts : NULL, tz ? &new_tz : NULL); } static int __compat_get_timeval(struct timeval *tv, const struct compat_timeval __user *ctv) diff --git a/kernel/time/posix-stubs.c b/kernel/time/posix-stubs.c index cd6716e..95a1b1f 100644 --- a/kernel/time/posix-stubs.c +++ b/kernel/time/posix-stubs.c @@ -49,13 +49,16 @@ SYS_NI(alarm); SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock, const struct timespec __user *, tp) { + struct timespec64 new_tp64; struct timespec new_tp; if (which_clock != CLOCK_REALTIME) return -EINVAL; if (copy_from_user(&new_tp, tp, sizeof (*tp))) return -EFAULT; - return do_sys_settimeofday(&new_tp, NULL); + + new_tp64 = timespec_to_timespec64(new_tp); + return do_sys_settimeofday64(&new_tp64, NULL); } SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock, diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c index 50a6a47..f215ef7 100644 --- a/kernel/time/posix-timers.c +++ b/kernel/time/posix-timers.c @@ -214,7 +214,10 @@ static int posix_clock_realtime_get(clockid_t which_clock, struct timespec *tp) static int posix_clock_realtime_set(const clockid_t which_clock, const struct timespec *tp) { - return do_sys_settimeofday(tp, NULL); + struct timespec64 tp64; + + tp64 = timespec_to_timespec64(*tp); + return do_sys_settimeofday64(&tp64, NULL); } static int posix_clock_realtime_adj(const clockid_t which_clock, diff --git a/kernel/time/time.c b/kernel/time/time.c index 25bdd25..6574bba 100644 --- a/kernel/time/time.c +++ b/kernel/time/time.c @@ -193,8 +193,8 @@ int do_sys_settimeofday64(const struct timespec64 *tv, const struct timezone *tz SYSCALL_DEFINE2(settimeofday, struct timeval __user *, tv, struct timezone __user *, tz) { + struct timespec64 new_ts; struct timeval user_tv; - struct timespec new_ts; struct timezone new_tz; if (tv) { @@ -212,7 +212,7 @@ SYSCALL_DEFINE2(settimeofday, struct timeval __user *, tv, return -EFAULT; } - return do_sys_settimeofday(tv ? &new_ts : NULL, tz ? &new_tz : NULL); + return do_sys_settimeofday64(tv ? &new_ts : NULL, tz ? &new_tz : NULL); } SYSCALL_DEFINE1(adjtimex, struct timex __user *, txc_p) -- 2.7.4