Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757641AbYFIWAa (ORCPT ); Mon, 9 Jun 2008 18:00:30 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751899AbYFIWAU (ORCPT ); Mon, 9 Jun 2008 18:00:20 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:38966 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752169AbYFIWAT (ORCPT ); Mon, 9 Jun 2008 18:00:19 -0400 Date: Mon, 9 Jun 2008 14:59:23 -0700 From: Andrew Morton To: "Maciej W. Rozycki" Cc: zippel@linux-m68k.org, tglx@linutronix.de, a.zummo@towertech.it, linux-kernel@vger.kernel.org Subject: Re: [PATCH] NTP: Let update_persistent_clock() sleep Message-Id: <20080609145923.fe5dc86d.akpm@linux-foundation.org> In-Reply-To: References: <20080528201612.d2641dc3.akpm@linux-foundation.org> X-Mailer: Sylpheed version 2.2.4 (GTK+ 2.8.20; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3442 Lines: 103 On Mon, 9 Jun 2008 19:18:52 +0100 (BST) "Maciej W. Rozycki" wrote: > Hi, > > > > Roman does most of the NTP work afaik. I consider Thomas's git-hrt > > > tree to be the route via which NTP changes get into linux-next and > > > mainline. > > > > That function is a little misplaced, we already have a driver/rtc dir, > > where this should go in the long term and ntp.c only providing the > > trigger, that time is stable. There it would also be possible to better > > take into account any quirks needed to update the chip. > > I posted a separate change to implement a backend using the RTC class > device. I think this is the right solution till all the platforms are > moved away from legacy RTC drivers. > > I think you are right about the long-term implications and apart from any > possible quirks I think the interface could get improved as there are RTC > chips we support nowadays that provide sub-second resolution. > Are there any objections to the patch under discussion? Thanks. From: "Maciej W. Rozycki" This is a change that makes the 11-minute RTC update be run in the process context. This is so that update_persistent_clock() can sleep, which may be required for certain types of RTC hardware -- most notably I2C devices. Signed-off-by: Maciej W. Rozycki Cc: Thomas Gleixner Cc: Roman Zippel Cc: Rik van Riel Cc: Alessandro Zummo Cc: David Brownell Signed-off-by: Andrew Morton --- kernel/time/ntp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff -puN kernel/time/ntp.c~ntp-let-update_persistent_clock-sleep kernel/time/ntp.c --- a/kernel/time/ntp.c~ntp-let-update_persistent_clock-sleep +++ a/kernel/time/ntp.c @@ -10,13 +10,13 @@ #include #include -#include #include #include #include #include #include #include +#include #include /* @@ -218,11 +218,11 @@ void second_overflow(void) /* Disable the cmos update - used by virtualization and embedded */ int no_sync_cmos_clock __read_mostly; -static void sync_cmos_clock(unsigned long dummy); +static void sync_cmos_clock(struct work_struct *work); -static DEFINE_TIMER(sync_cmos_timer, sync_cmos_clock, 0, 0); +static DECLARE_DELAYED_WORK(sync_cmos_work, sync_cmos_clock); -static void sync_cmos_clock(unsigned long dummy) +static void sync_cmos_clock(struct work_struct *work) { struct timespec now, next; int fail = 1; @@ -258,13 +258,13 @@ static void sync_cmos_clock(unsigned lon next.tv_sec++; next.tv_nsec -= NSEC_PER_SEC; } - mod_timer(&sync_cmos_timer, jiffies + timespec_to_jiffies(&next)); + schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next)); } static void notify_cmos_timer(void) { if (!no_sync_cmos_clock) - mod_timer(&sync_cmos_timer, jiffies + 1); + schedule_delayed_work(&sync_cmos_work, 0); } #else _ -- 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/