From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91DFCC433DF for ; Fri, 24 Jul 2020 10:23:50 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5D8562065C for ; Fri, 24 Jul 2020 10:23:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ejmUdtGS"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="xnuG9iV6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5D8562065C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:Subject:To:From: Date:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=KMmo1Dh+phvM6Yef5ah1TDFL0SVzXgA0UHBsEMIF+70=; b=ejmUdtGSG2LmSqQ2LIgriZqOX ynGxbdSKzJCg+kzI+m/JX9x3Ye5nFYAF2lw8FH+YuwhePxXVoaAqkJX4rY+k1G6qTlAbIPA1X/fty Bk1zrf5B0MVuvQ0N4kXV4gpsGbelKVwElYDbkv75+/UiC96HA6c1jiNJa7kDRCsj5BGO72BUHCtRU XaYHwO7S4nYf+Zjlccgz3f2cxLTIx/TwaeODInxhqDZmHVdCO6YV14QmVkB+bhTJ7T74YzwW+ZpKz ZMtPXXQEWgTW2C5yWHU3kBWmSVmmdagd5uTu0ByP09GXg1ZmCclX+ZuWEG+pgjypR6KNjcLAqels5 dsMjErw3A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyuqO-0003dI-8H; Fri, 24 Jul 2020 10:22:24 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyuqL-0003cV-DV for linux-arm-kernel@lists.infradead.org; Fri, 24 Jul 2020 10:22:22 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DA242206F0; Fri, 24 Jul 2020 10:22:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595586140; bh=n86ptkIAkaC2tikktHFNOqfVbqPme1toHeU0efpnSYM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=xnuG9iV6msm4/tVLaHWZ7LBIEHlBbrzBPHZu4ivXQSXjspcCbUNbR6BpdXkMvxSlT EnrVBNhU7s2v/k6UvcpDxWwKfE6EV8cYyFq2TDSMtyjZEgzVNmPOI1361lLjBBaTRC pW2ut1ZUJGM5+PPKHy1Y89TROzngvs0h5T7l4nMs= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jyuqI-00EXhv-7x; Fri, 24 Jul 2020 11:22:18 +0100 MIME-Version: 1.0 Date: Fri, 24 Jul 2020 11:22:18 +0100 From: Marc Zyngier To: Shaokun Zhang Subject: Re: [PATCH] arm64: arch_timer: Ensure timer is enabled before using istatus In-Reply-To: <1595584037-6877-1-git-send-email-zhangshaokun@hisilicon.com> References: <1595584037-6877-1-git-send-email-zhangshaokun@hisilicon.com> User-Agent: Roundcube Webmail/1.4.5 Message-ID: X-Sender: maz@kernel.org X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: zhangshaokun@hisilicon.com, linux-arm-kernel@lists.infradead.org, tangnianyao@huawei.com, mark.rutland@arm.com, daniel.lezcano@linaro.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200724_062221_527650_9AD905C6 X-CRM114-Status: GOOD ( 16.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Daniel Lezcano , Nianyao Tang , linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2020-07-24 10:47, Shaokun Zhang wrote: > From: Nianyao Tang > > In Arm ARM spec, there is a description for timer control register, > when > the value of the ENABLE bit is 0, the ISTATUS field is UNKNOWN. We > shall > only read and use ISTATUS when ENABLE is 1, otherwise ISTATUS may be > invalid. > > Cc: Mark Rutland > Cc: Marc Zyngier > Cc: Daniel Lezcano > Signed-off-by: Nianyao Tang > Signed-off-by: Shaokun Zhang > --- > drivers/clocksource/arm_arch_timer.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/clocksource/arm_arch_timer.c > b/drivers/clocksource/arm_arch_timer.c > index 6c3e84180146..0bbc2715de79 100644 > --- a/drivers/clocksource/arm_arch_timer.c > +++ b/drivers/clocksource/arm_arch_timer.c > @@ -641,7 +641,8 @@ static __always_inline irqreturn_t > timer_handler(const int access, > unsigned long ctrl; > > ctrl = arch_timer_reg_read(access, ARCH_TIMER_REG_CTRL, evt); > - if (ctrl & ARCH_TIMER_CTRL_IT_STAT) { > + if ((ctrl & ARCH_TIMER_CTRL_ENABLE) && > + (ctrl & ARCH_TIMER_CTRL_IT_STAT)) { > ctrl |= ARCH_TIMER_CTRL_IT_MASK; > arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl, evt); > evt->event_handler(evt); Interesting. A question for you though: How do you think we made it in the interrupt handler if the timer was disabled? M. -- Jazz is not dead. It just smells funny... _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel