Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp5383360ybl; Tue, 27 Aug 2019 03:56:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqy1Tj77r9RSLo9Si/8H785U4d/CfQ9X81ToUAWd30xp/IJqB/wlnSVv22awTUqWPVixi89V X-Received: by 2002:a62:8343:: with SMTP id h64mr24439102pfe.170.1566903419859; Tue, 27 Aug 2019 03:56:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566903419; cv=none; d=google.com; s=arc-20160816; b=aCNMP2LFn2DXQDocyalpBOQ27BEwneqST7zqHq8EdLTrHgom7nnEVesNQZelmCgkG9 tVhQkD1ZksqeDn4xfgtSHratb+rHqDy68Oi7W/SrpgxpwHm0yxsmIKFR50Qaw02AAtes XQmdWZUZRxt4NvnPPmckU/fcEgKSoFu53Eq10PWzg4XAiuNwwsjlE2CjiodawlPZjsN2 qkIt0yVicGsDKIiwTWjkeNPB1HxBwxhdNAttEG87HLWBqhPqr70LcMcWc5R9g2IJsyae d81f3pwWSuuuk2VzS2kHmQztnKT988z9wyDKO3b7SYekcE8MmmjQCw0wKkcjHpfbJmzS oD3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date; bh=HdV6aR+sztDq0tsv3QSSfxZVDtM3m5anV/M5Wi3hF2o=; b=Fw+LTlI0sGHmJC3F7KXaofOd0m7Qo1TdpZBB296daU0gnHZ2Bb+9GLQhEg84I+GJbt ibg5XEx2+OYr9I8UQmwE932eL+ednjKtGw+pBjB1BTEXHa5cqXmnu9sLr110fa7m55wt BncsVJtsInKLZ6KHlPe5oDG3kP/69XOHj9oM5oEDwcWmoJQWwoda/bZDKIlcpKtTtFqP 57GlovM1xcFcCcMlnEZrijFvHJ+f8u8cbDz5G4AidzJZZujBqAxoahDi4G5D8SfclWFr c5Xh7NG5wUFh1mMHsvsE7NX5m6qki6Ubpp9W3pEPfmCSf6zVjlkdrXlKZDU/0oscfuFy 7rRA== 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 n9si11271788pgp.338.2019.08.27.03.56.44; Tue, 27 Aug 2019 03:56:59 -0700 (PDT) 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 S1729031AbfH0Kzr (ORCPT + 99 others); Tue, 27 Aug 2019 06:55:47 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:43285 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726392AbfH0Kzq (ORCPT ); Tue, 27 Aug 2019 06:55:46 -0400 Received: from bigeasy by Galois.linutronix.de with local (Exim 4.80) (envelope-from ) id 1i2Z8Y-0002mO-FC; Tue, 27 Aug 2019 12:55:42 +0200 Date: Tue, 27 Aug 2019 12:55:42 +0200 From: Sebastian Andrzej Siewior To: Thomas Gleixner Cc: LKML , linux-rt-users , Steven Rostedt Subject: [ANNOUNCE] v5.2.10-rt5 Message-ID: <20190827105542.qxvtteirkh55i5ly@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dear RT folks! I'm pleased to announce the v5.2.10-rt5 patch set. Changes since v5.2.10-rt4: - Take care of compile issue within the timer-atmel-tcb driver on AT91. Reported by Alexander Dahl, patched by Alexandre Belloni. - Fixes to the hrtimer code to finally avoiding warnings while canceling a running hrtimer in IRQ context. Patches by Julien Grall. Known issues - rcutorture is currently broken on -RT. Reported by Juri Lelli. The delta patch against v5.2.10-rt4 is appended below and can be found here: https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.2/incr/patch-5.2.10-rt4-rt5.patch.xz You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v5.2.10-rt5 The RT patch against v5.2.10 can be found here: https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patch-5.2.10-rt5.patch.xz The split quilt queue is available at: https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.10-rt5.tar.xz Sebastian diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index 36f8c58386e20..2927b673caa62 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@ -424,7 +424,7 @@ config ATMEL_ST config ATMEL_TCB_CLKSRC bool "Atmel TC Block timer driver" if COMPILE_TEST - depends on HAS_IOMEM && ATMEL_TCLIB + depends on HAS_IOMEM select TIMER_OF if OF help Support for Timer Counter Blocks on Atmel SoCs. diff --git a/drivers/clocksource/timer-atmel-tcb.c b/drivers/clocksource/timer-atmel-tcb.c index 05b5272f5d7e9..1a5abc178b655 100644 --- a/drivers/clocksource/timer-atmel-tcb.c +++ b/drivers/clocksource/timer-atmel-tcb.c @@ -265,9 +265,11 @@ static irqreturn_t ch2_irq(int irq, void *handle) return IRQ_NONE; } +static const u8 atmel_tcb_divisors[5] = { 2, 8, 32, 128, 0, }; + static int __init setup_clkevents(struct atmel_tc *tc, int divisor_idx) { - unsigned divisor = atmel_tc_divisors[divisor_idx]; + unsigned divisor = atmel_tcb_divisors[divisor_idx]; int ret; struct clk *t2_clk = tc->clk[2]; int irq = tc->irq[2]; @@ -360,8 +362,6 @@ static void __init tcb_setup_single_chan(struct atmel_tc *tc, int mck_divisor_id writel(ATMEL_TC_SYNC, tcaddr + ATMEL_TC_BCR); } -static const u8 atmel_tcb_divisors[5] = { 2, 8, 32, 128, 0, }; - static const struct of_device_id atmel_tcb_of_match[] = { { .compatible = "atmel,at91rm9200-tcb", .data = (void *)16, }, { .compatible = "atmel,at91sam9x5-tcb", .data = (void *)32, }, @@ -482,7 +482,7 @@ static int __init tcb_clksrc_init(struct device_node *node) #ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK ret = setup_clkevents(&tc, clk32k_divisor_idx); #else - ret = setup_clkevents(tc, best_divisor_idx); + ret = setup_clkevents(&tc, best_divisor_idx); #endif if (ret) goto err_unregister_clksrc; diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c index 7d7db88021311..5eb45a868de9a 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -932,9 +932,9 @@ EXPORT_SYMBOL_GPL(hrtimer_forward); void hrtimer_grab_expiry_lock(const struct hrtimer *timer) { - struct hrtimer_clock_base *base = timer->base; + struct hrtimer_clock_base *base = READ_ONCE(timer->base); - if (base && base->cpu_base) { + if (timer->is_soft && base != &migration_base) { spin_lock(&base->cpu_base->softirq_expiry_lock); spin_unlock(&base->cpu_base->softirq_expiry_lock); } diff --git a/localversion-rt b/localversion-rt index ad3da1bcab7e8..0efe7ba1930e1 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt4 +-rt5