Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp258208ybi; Wed, 29 May 2019 20:49:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqyJUSqAnjSrYc8u7ay8drRvsJcMVB4KT3TBhnIdr9rsJLjokDrywsK0pnOn4JIOxeE53VLj X-Received: by 2002:a63:1650:: with SMTP id 16mr1796726pgw.164.1559188160951; Wed, 29 May 2019 20:49:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559188160; cv=none; d=google.com; s=arc-20160816; b=zI+OUU3qCdTNPJdwHxZt37LCCWs20Wl50Jv5yN/eZ0YZqF5CdP0F6XYC6chhERw02c eyHxY+EtTd9BWO1sHGDxuXsl1nTtZdbz3MhPiAhHsobUQqdDmklHsB5h2/BPz3vSJ+WJ nLOe1MPE/wA8GyhzQoaJpkRLJApq6VG1Oe2HcQGjpj81z8Wu+3UlEruW6+iO9HKYgjM7 5gsvXW00YReBcUPsgM+ZpPcciXS4K/qJnh/4fxAjRJt0jUNeSEGQbPKc+Rj4MemjyMmC tnA4sXwlYYBU8BnTDtehDEEmGl3Xvy2dEZpJU7ub+3I0QJ5xRtnT9DPg23LO9a/A7s/f 3Uig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=UGzuA8qxc0CCJ+VTe+zUwCA7e4ZrOJjymA/h8M1VWuk=; b=u3V+8/NimBvvT/ridjwofkA+AKSnPGhO6PgljRSUlKYz7uIV/3K762wHMXQmN3y/ra rdxAi9OK8cmMPZZlN3lij0+LzHjHJJy+m5kaM+TTy9THD9MHcCXBYd4C/Ydt9MUg+8g9 08FobhmFlf283oTzVVAz/2rgjQp0swElXOJVLoh+ehoyMgxEqnzQrdu9vEyqZckxbe3b y/khmQIeAzYbkeLt5rtZr0+FiP9cm2Yx0vHlrZ4B2ctwe1oX2HwyqhK5gNmxP/VQZmcf qC3KxB6aC89Abqrg/hsNJ1NijBUHxfLpIVesXhmsvVvp1UznK46QlL/UU581REzRCTER VymQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=UUqcZjnl; 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 p7si2192205pfn.266.2019.05.29.20.49.05; Wed, 29 May 2019 20:49:20 -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; dkim=pass header.i=@kernel.org header.s=default header.b=UUqcZjnl; 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 S1732907AbfE3Dqq (ORCPT + 99 others); Wed, 29 May 2019 23:46:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:59258 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732265AbfE3DUh (ORCPT ); Wed, 29 May 2019 23:20:37 -0400 Received: from localhost (ip67-88-213-2.z213-88-67.customer.algx.net [67.88.213.2]) (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 85A6D2492F; Thu, 30 May 2019 03:20:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559186436; bh=cIGnD4yXtI3MMHtih8BtRCO6noHVs0fjrkprujW0B5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UUqcZjnlZvsb2PCucUWsG/JKE54tdoKGFWaoeQ0w3S00ORk+4lDHyY+tuiMfHujT2 TUMDlKMjZ0trsTrXlhfSQYdXRbQWcCuv9sIDHfrD65+ESltEwYr3b37Wgl2EYekTON oKcQBCPgi4WlrJiSVDiozeyYNgaiaE8aAb7QNBv0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mark Rutland , Marc Zyngier , Will Deacon , Sasha Levin Subject: [PATCH 4.9 033/128] ARM: vdso: Remove dependency with the arch_timer driver internals Date: Wed, 29 May 2019 20:06:05 -0700 Message-Id: <20190530030440.414195214@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030432.977908967@linuxfoundation.org> References: <20190530030432.977908967@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 1f5b62f09f6b314c8d70b9de5182dae4de1f94da ] The VDSO code uses the kernel helper that was originally designed to abstract the access between 32 and 64bit systems. It worked so far because this function is declared as 'inline'. As we're about to revamp that part of the code, the VDSO would break. Let's fix it by doing what should have been done from the start, a proper system register access. Reviewed-by: Mark Rutland Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon Signed-off-by: Sasha Levin --- arch/arm/include/asm/cp15.h | 2 ++ arch/arm/vdso/vgettimeofday.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/cp15.h b/arch/arm/include/asm/cp15.h index b74b174ac9fcd..b458e41227943 100644 --- a/arch/arm/include/asm/cp15.h +++ b/arch/arm/include/asm/cp15.h @@ -67,6 +67,8 @@ #define BPIALL __ACCESS_CP15(c7, 0, c5, 6) #define ICIALLU __ACCESS_CP15(c7, 0, c5, 0) +#define CNTVCT __ACCESS_CP15_64(1, c14) + extern unsigned long cr_alignment; /* defined in entry-armv.S */ static inline unsigned long get_cr(void) diff --git a/arch/arm/vdso/vgettimeofday.c b/arch/arm/vdso/vgettimeofday.c index 79214d5ff0970..3af02d2a0b7f2 100644 --- a/arch/arm/vdso/vgettimeofday.c +++ b/arch/arm/vdso/vgettimeofday.c @@ -18,9 +18,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -123,7 +123,8 @@ static notrace u64 get_ns(struct vdso_data *vdata) u64 cycle_now; u64 nsec; - cycle_now = arch_counter_get_cntvct(); + isb(); + cycle_now = read_sysreg(CNTVCT); cycle_delta = (cycle_now - vdata->cs_cycle_last) & vdata->cs_mask; -- 2.20.1