From patchwork Mon Oct 27 05:46:39 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "pang.xunlei" X-Patchwork-Id: 39553 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f198.google.com (mail-lb0-f198.google.com [209.85.217.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id C331624026 for ; Mon, 27 Oct 2014 05:48:46 +0000 (UTC) Received: by mail-lb0-f198.google.com with SMTP id l4sf34304lbv.9 for ; Sun, 26 Oct 2014 22:48:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe; bh=LIWZN6sujuBwqY33B9O5CKkF12l5vgUHCQ8K/F6NMJU=; b=I2y+Wn4FoRJwZg+lbF2jtmgtRJP4pOZn+uzgQasKTdOets9X8qiJqFBcILF16TRlNk +jEbIIT1P6s5C/OD9QhXzG8nLqC1gkcJuBc00ouS717NH9l+p1u4a4TE6jcQ83iJQ7kF XTqbUMCQ9IDpkkZiOdH+nTHaD1qbWiX//jyrUFNbyg4R6oCrnia+jnBH+fzjJhIdmQD1 Tuqlh6FM74Ves4onhous3u30uUPcF0mOhAxdd1tnCqTWh10HcpU1lzwUlA9tJ1JsjsN/ 3ErqlnusCOkEmilvKFPEPutI34/NS6MGrp9K829fC8K6YksKhXb31Fduu21pg2YuX/AT vKNQ== X-Gm-Message-State: ALoCoQmXz2jU48vBXaiYsLdsAEAGmyn4S2ZK1AaeXSZjr9Ktli+TE1TOQAFXDme6Zdc0OERhIw4A X-Received: by 10.112.217.102 with SMTP id ox6mr10268lbc.19.1414388925673; Sun, 26 Oct 2014 22:48:45 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.115.207 with SMTP id jq15ls736511lab.49.gmail; Sun, 26 Oct 2014 22:48:45 -0700 (PDT) X-Received: by 10.112.45.228 with SMTP id q4mr21170680lbm.35.1414388925507; Sun, 26 Oct 2014 22:48:45 -0700 (PDT) Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com. [209.85.217.181]) by mx.google.com with ESMTPS id j15si18258170lbg.30.2014.10.26.22.48.45 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 26 Oct 2014 22:48:45 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.181 as permitted sender) client-ip=209.85.217.181; Received: by mail-lb0-f181.google.com with SMTP id w7so485235lbi.26 for ; Sun, 26 Oct 2014 22:48:45 -0700 (PDT) X-Received: by 10.152.120.199 with SMTP id le7mr20606825lab.67.1414388925182; Sun, 26 Oct 2014 22:48:45 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.84.229 with SMTP id c5csp235770lbz; Sun, 26 Oct 2014 22:48:44 -0700 (PDT) X-Received: by 10.70.37.79 with SMTP id w15mr22219347pdj.8.1414388923609; Sun, 26 Oct 2014 22:48:43 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id fc5si9742821pdb.29.2014.10.26.22.48.42 for ; Sun, 26 Oct 2014 22:48:43 -0700 (PDT) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752535AbaJ0Fsk (ORCPT + 26 others); Mon, 27 Oct 2014 01:48:40 -0400 Received: from mail-pa0-f43.google.com ([209.85.220.43]:65418 "EHLO mail-pa0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752317AbaJ0Frl (ORCPT ); Mon, 27 Oct 2014 01:47:41 -0400 Received: by mail-pa0-f43.google.com with SMTP id eu11so4781927pac.30 for ; Sun, 26 Oct 2014 22:47:41 -0700 (PDT) X-Received: by 10.66.191.135 with SMTP id gy7mr21928232pac.95.1414388861497; Sun, 26 Oct 2014 22:47:41 -0700 (PDT) Received: from wangdeqiang.com ([210.21.227.66]) by mx.google.com with ESMTPSA id jq5sm9723922pbc.32.2014.10.26.22.47.37 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 26 Oct 2014 22:47:41 -0700 (PDT) From: "pang.xunlei" To: linux-kernel@vger.kernel.org, rtc-linux@googlegroups.com Cc: John Stultz , Thomas Gleixner , Alessandro Zummo , "pang.xunlei" Subject: [PATCH RFC 09/12] time: Convert rtc_time_to_tm_unsafe() to rtc_time_to_tm() in alarm_set_rtc() Date: Mon, 27 Oct 2014 13:46:39 +0800 Message-Id: <1414388802-5866-8-git-send-email-pang.xunlei@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1414388802-5866-1-git-send-email-pang.xunlei@linaro.org> References: <1414388802-5866-1-git-send-email-pang.xunlei@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: pang.xunlei@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.181 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The kernel uses 32-bit signed value(time_t) for seconds since 1970-01-01:00:00:00, so it will overflow at 2038-01-19 03:14:08 on 32-bit systems. We call this "2038 safety" issue. As part of addressing 2038 saftey for in-kernel uses, this patch creates no functional change in existing users, and converts rtc_time_to_tm_unsafe() to rtc_time_to_tm(). Signed-off-by: pang.xunlei --- drivers/staging/android/alarm-dev.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/android/alarm-dev.c b/drivers/staging/android/alarm-dev.c index 3f95f80e..e2729c8 100644 --- a/drivers/staging/android/alarm-dev.c +++ b/drivers/staging/android/alarm-dev.c @@ -152,16 +152,18 @@ static int alarm_wait(void) return rv; } -static int alarm_set_rtc(struct timespec *ts) +static int alarm_set_rtc(struct timespec64 *ts) { + struct timespec ts32; struct rtc_time new_rtc_tm; struct rtc_device *rtc_dev; unsigned long flags; int rv = 0; - rtc_time_to_tm_unsafe(ts->tv_sec, &new_rtc_tm); + rtc_time_to_tm(ts->tv_sec, &new_rtc_tm); rtc_dev = alarmtimer_get_rtcdev(); - rv = do_settimeofday(ts); + ts32 = timespec64_to_timespec(*ts); + rv = do_settimeofday(&ts32); if (rv < 0) return rv; if (rtc_dev) @@ -201,6 +203,7 @@ static int alarm_get_time(enum android_alarm_type alarm_type, static long alarm_do_ioctl(struct file *file, unsigned int cmd, struct timespec *ts) { + struct timespec64 ts64; int rv = 0; unsigned long flags; enum android_alarm_type alarm_type = ANDROID_ALARM_IOCTL_TO_TYPE(cmd); @@ -238,7 +241,8 @@ static long alarm_do_ioctl(struct file *file, unsigned int cmd, rv = alarm_wait(); break; case ANDROID_ALARM_SET_RTC: - rv = alarm_set_rtc(ts); + ts64 = timespec_to_timespec64(*ts); + rv = alarm_set_rtc(&ts64); break; case ANDROID_ALARM_GET_TIME(0): rv = alarm_get_time(alarm_type, ts);