Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4410663imu; Fri, 30 Nov 2018 17:04:03 -0800 (PST) X-Google-Smtp-Source: AFSGD/VnihebzA4drF3mDscEpnKcYf/EnzrJ5erjfdcix3R+CO/vVrdrdDahA1XDAaDY15DGFzlz X-Received: by 2002:a63:db02:: with SMTP id e2mr6623534pgg.419.1543626243398; Fri, 30 Nov 2018 17:04:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543626243; cv=none; d=google.com; s=arc-20160816; b=IyIn+w87ehYz9GrblJJZ6j/L7QusMcDOjTU9mVTBCygpNGLHK9nguObBP14QpYhkkt td3iKOeDIaI11veDAMoSOMJ/fS3MmAJmRbBb2VUgnSS7Fo360DjYsFE7lZPnN4VVcLqo GVsOal+evoHbPm6tnewFiJhWVOdCTguAzkwnZ1m31vkkqmbL6oPUXVDZeZ/Q1aVztFyb tml2GHLDKtNG7G+kwiLoaTcAVFwbDsxmw0biBIOfzsPlMg4tDGWM6V6bsSFeeO1WSZsK ZFruATFgrEuRYcCUw/MqbF3PGz75NxHArmahpwnM561n+DbSoAQt6/3w4yhAVssnMP5s J10w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:subject:from:message-id:cc:to; bh=BD568Wh2K+oEhsnBmR5hYMw3dL1uaxvCjb1/6EP1jD4=; b=eRrEtyiX9kGlqDWV+LgA/NhDb7l1IKSdTu4vIZyuUAOmkZ59tvNflY+1iu4/ycUfxK XLLlZpEBH+Dzy7U/q5zIGdCSTJw2lKfSEAaJA9BKIGcQhv22o1gE1DyyumNT4ApRP43b 6m4izBZcimfaSpakfAvOziXHfoB1DwLNcJXtUzaS60S+5eCFsuODZV+Am+uTMBdg9yk6 3J/DL7j1CKeqz42gSvoWu4YrmvmQKmWIkhzmkmDJy7JwugHrPQUjIm7Cy1gWsxQ76wGS xI+HWdbvJZiSjnWTHphGjLoFvkqPieYCSAXsx+vBDvU8jVyDOIHH5X+luiuDOBJodyVj VSrg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h8si6958969plr.343.2018.11.30.17.03.48; Fri, 30 Nov 2018 17:04:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727186AbeLAMMk (ORCPT + 99 others); Sat, 1 Dec 2018 07:12:40 -0500 Received: from kvm5.telegraphics.com.au ([98.124.60.144]:37938 "EHLO kvm5.telegraphics.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726013AbeLAMLb (ORCPT ); Sat, 1 Dec 2018 07:11:31 -0500 Received: by kvm5.telegraphics.com.au (Postfix, from userid 502) id 9F720227AE; Fri, 30 Nov 2018 20:00:14 -0500 (EST) To: Geert Uytterhoeven Cc: Andreas Schwab , Arnd Bergmann , Stephen N Chivers , Thomas Gleixner , Kars de Jong , Daniel Lezcano , Michael Schmitz , John Stultz , Linus Walleij , linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org Message-Id: From: Finn Thain Subject: [PATCH v4 00/14] m68k: Drop arch_gettimeoffset and adopt clocksource API Date: Sat, 01 Dec 2018 11:53:10 +1100 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series removes "select ARCH_USES_GETTIMEOFFSET" from arch/m68k and converts users of arch_gettimeoffset to the clocksource API. Various bugs are fixed along the way. Those platforms which do not actually implement arch_gettimeoffset (apollo, q40, sun3, sun3x) use the "jiffies" clocksource by default. The difficulty with these patches is the use of the timer interrupt to update the counter for the clock source. The timer interrupt handler races with clocksource read method, and both of those functions race with the timer hardware. Hence, more testing would be appreciated. To my knowledge, the conversion patches for bvme6000, hp300, mvme147 and mvme16x are still untested. Changed since v3: - Various improvements to amiga, mac, bvme6000 and hp300 conversions summarized in the relevant patches. - Added tested-by tags. Changed since v2: - Reinstated patch "m68k: hp300: Convert to clocksource API", and added a new patch "m68k: hp300: Handle timer counter overflow" to address monotonicity issues. - Omitted a minor cleanup patch which may be merged independently. - Various other changes summarized in the relevant patches. Changed since v1: - Dropped patches 1/13 and 2/13. These were a failed attempt to fix 5cfc8ee0bb51 and 4ad4c76b7afb. By adopting the clocksource API we can fix this issue in mainline. By backporting this series we can fix it for -stable (for m68k at least). - Dropped patch "m68k: hp300: Convert to clocksource API" and added patch "m68k: hp300: Remove hp300_gettimeoffset". - Added a new patch to address an old m68k bug pointed out by Thomas Gleixner. The bug can arise when a timer interrupt handler gets interrupted. - Added new patches to address old mvme16x and mvme147 bugs pointed out by Thomas Gleixner. The bug could cause the clock to jump backwards. - Various other changes summarized in the relevant patches. Finn Thain (14): m68k: Call timer_interrupt() with interrupts disabled m68k: mac: Fix VIA timer counter accesses m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementations m68k: Drop ARCH_USES_GETTIMEOFFSET m68k: amiga: Convert to clocksource API m68k: atari: Convert to clocksource API m68k: bvme6000: Convert to clocksource API m68k: hp300: Convert to clocksource API m68k: hp300: Handle timer counter overflow m68k: mac: Convert to clocksource API m68k: mvme147: Convert to clocksource API m68k: mvme147: Handle timer counter overflow m68k: mvme16x: Convert to clocksource API m68k: mvme16x: Handle timer counter overflow arch/m68k/Kconfig | 1 - arch/m68k/amiga/cia.c | 9 ++ arch/m68k/amiga/config.c | 49 +++++++--- arch/m68k/apollo/config.c | 7 -- arch/m68k/atari/ataints.c | 4 +- arch/m68k/atari/config.c | 2 - arch/m68k/atari/time.c | 70 ++++++++++---- arch/m68k/bvme6000/config.c | 77 ++++++++++------ arch/m68k/hp300/config.c | 1 - arch/m68k/hp300/time.c | 73 +++++++++++---- arch/m68k/hp300/time.h | 1 - arch/m68k/include/asm/mvme147hw.h | 2 +- arch/m68k/mac/config.c | 3 - arch/m68k/mac/via.c | 146 ++++++++++++++++++++---------- arch/m68k/mvme147/config.c | 73 ++++++++++----- arch/m68k/mvme16x/config.c | 97 ++++++++++++++------ arch/m68k/q40/config.c | 9 -- arch/m68k/q40/q40ints.c | 19 ++-- arch/m68k/sun3/config.c | 2 - arch/m68k/sun3/intersil.c | 7 -- arch/m68k/sun3/sun3ints.c | 3 + arch/m68k/sun3x/config.c | 1 - arch/m68k/sun3x/time.c | 21 ++--- arch/m68k/sun3x/time.h | 1 - 24 files changed, 445 insertions(+), 233 deletions(-) -- 2.18.1