Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp720859ybv; Thu, 13 Feb 2020 08:18:50 -0800 (PST) X-Google-Smtp-Source: APXvYqzcKcS6ufZG15GjNTYw2RZGatL+ORRWChp2rIxK8GwvUdsDJOaw4g9v2ShNFhR5PgNM/TV9 X-Received: by 2002:aca:815:: with SMTP id 21mr3557431oii.52.1581610730865; Thu, 13 Feb 2020 08:18:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581610730; cv=none; d=google.com; s=arc-20160816; b=hbAaz1sOtSacQBPNB+phl8TL/0rh8LmoZSV+6fv2+XMLVTYh8kR6+M4QQVBajDE5lB LH/RELJ24HV3YCaw5oSws7anygU0jxyszSpT3usXGiEzfijfg42VTXqxQXVU0ZjAZ7fG iz53X287axvrQA8SfEBkZSTWtn5F50a8iFqax8zyrczeHbPmx8ws9BDZXBPTkwxvTU3g iVuHSSqUdJo7YwrDC1iQ7MqxetGSg+UC5Mr0U0r7SahpoDDpVityLscbNZGl4FFaD1Pt zlL4Pvw1ypMrrYgZe+En0wSSonXMHERx6fNlQPHreucSGhpH87yk5gN56wEXqvJcsjhP EXew== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=m5D7C1KF62my8IPFsg7iARusO36jp5ESFEtBecVzU3U=; b=fBgH5zCpALa74dr3c/WhtWhC788fef7/ds9hoc1irErOTrcxGi1LcoG/gILLj4GuAg ccTj+TzeMBmfm3PbfwqEdbYTMRCEIKHcbH+DUkl9n0x9FrPiRdJ33wGyZGESsZTFfM7A cHb5mt+PoNTuQkRkRBS9mu0ADE4F/SyORuQPBnkup0tQ0csW2c8JAJ9BRKY9uzY8afyw QBfRgw5pH+FxfPAksCgm1Ut1HCadfa1iHGkzFIHqOYhxveTZNt9QW9sZHd+PM92QG6UO F0DVJ7hDq0DlnL5/LBsa2r9PXKdV0MZArlOCXI62W7klA48JylAo9GNGwulyDx23QB7X LOOA== 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 j3si1326064oie.86.2020.02.13.08.18.38; Thu, 13 Feb 2020 08:18:50 -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 S1730496AbgBMQRg (ORCPT + 99 others); Thu, 13 Feb 2020 11:17:36 -0500 Received: from foss.arm.com ([217.140.110.172]:50250 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730484AbgBMQRd (ORCPT ); Thu, 13 Feb 2020 11:17:33 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 667541063; Thu, 13 Feb 2020 08:17:32 -0800 (PST) Received: from e119884-lin.cambridge.arm.com (e119884-lin.cambridge.arm.com [10.1.196.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D9D9B3F6CF; Thu, 13 Feb 2020 08:17:29 -0800 (PST) From: Vincenzo Frascino To: linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, clang-built-linux@googlegroups.com, x86@kernel.org Cc: catalin.marinas@arm.com, will.deacon@arm.com, arnd@arndb.de, linux@armlinux.org.uk, paul.burton@mips.com, tglx@linutronix.de, luto@kernel.org, mingo@redhat.com, bp@alien8.de, sboyd@kernel.org, salyzyn@android.com, pcc@google.com, 0x7f454c46@gmail.com, ndesaulniers@google.com, avagin@openvz.org Subject: [PATCH 18/19] lib: vdso: Enable common headers Date: Thu, 13 Feb 2020 16:16:13 +0000 Message-Id: <20200213161614.23246-19-vincenzo.frascino@arm.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200213161614.23246-1-vincenzo.frascino@arm.com> References: <20200213161614.23246-1-vincenzo.frascino@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The vDSO library should only include the necessary headers required for a userspace library (UAPI and a minimal set of kernel headers). To make this possible it is necessary to isolate from the kernel headers the common parts that are strictly necessary to build the library. Refactor the unified vdso code to use the common headers. Cc: Andy Lutomirski Cc: Thomas Gleixner Signed-off-by: Vincenzo Frascino --- include/vdso/datapage.h | 32 +++++++++++++++++++++++++++++--- lib/vdso/gettimeofday.c | 21 --------------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/include/vdso/datapage.h b/include/vdso/datapage.h index c5f347cc5e55..21842a73cbcf 100644 --- a/include/vdso/datapage.h +++ b/include/vdso/datapage.h @@ -4,9 +4,19 @@ #ifndef __ASSEMBLY__ -#include -#include -#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include #define VDSO_BASES (CLOCK_TAI + 1) #define VDSO_HRES (BIT(CLOCK_REALTIME) | \ @@ -101,6 +111,22 @@ struct vdso_data { */ extern struct vdso_data _vdso_data[CS_BASES] __attribute__((visibility("hidden"))); +/* + * The generic vDSO implementation requires that gettimeofday.h + * provides: + * - __arch_get_vdso_data(): to get the vdso datapage. + * - __arch_get_hw_counter(): to get the hw counter based on the + * clock_mode. + * - gettimeofday_fallback(): fallback for gettimeofday. + * - clock_gettime_fallback(): fallback for clock_gettime. + * - clock_getres_fallback(): fallback for clock_getres. + */ +#ifdef ENABLE_COMPAT_VDSO +#include +#else +#include +#endif /* ENABLE_COMPAT_VDSO */ + #endif /* !__ASSEMBLY__ */ #endif /* __VDSO_DATAPAGE_H */ diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c index f8b8ec5e63ac..e3244f74feea 100644 --- a/lib/vdso/gettimeofday.c +++ b/lib/vdso/gettimeofday.c @@ -2,30 +2,9 @@ /* * Generic userspace implementations of gettimeofday() and similar. */ -#include -#include -#include -#include -#include #include #include -/* - * The generic vDSO implementation requires that gettimeofday.h - * provides: - * - __arch_get_vdso_data(): to get the vdso datapage. - * - __arch_get_hw_counter(): to get the hw counter based on the - * clock_mode. - * - gettimeofday_fallback(): fallback for gettimeofday. - * - clock_gettime_fallback(): fallback for clock_gettime. - * - clock_getres_fallback(): fallback for clock_getres. - */ -#ifdef ENABLE_COMPAT_VDSO -#include -#else -#include -#endif /* ENABLE_COMPAT_VDSO */ - #ifndef vdso_calc_delta /* * Default implementation which works for all sane clocksources. That -- 2.25.0