Linux-MIPS Archive on lore.kernel.org
 help / color / Atom feed
From: Vincenzo Frascino <vincenzo.frascino@arm.com>
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 04/19] linux/math64.h: Extract common header for vDSO
Date: Thu, 13 Feb 2020 16:15:59 +0000
Message-ID: <20200213161614.23246-5-vincenzo.frascino@arm.com> (raw)
In-Reply-To: <20200213161614.23246-1-vincenzo.frascino@arm.com>

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.

Split math64.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
---
 include/common/math64.h | 24 ++++++++++++++++++++++++
 include/linux/math64.h  | 20 +-------------------
 2 files changed, 25 insertions(+), 19 deletions(-)
 create mode 100644 include/common/math64.h

diff --git a/include/common/math64.h b/include/common/math64.h
new file mode 100644
index 000000000000..4e1870e40182
--- /dev/null
+++ b/include/common/math64.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __COMMON_MATH64_H
+#define __COMMON_MATH64_H
+
+static __always_inline u32
+__iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
+{
+	u32 ret = 0;
+
+	while (dividend >= divisor) {
+		/* The following asm() prevents the compiler from
+		   optimising this loop into a modulo operation.  */
+		asm("" : "+rm"(dividend));
+
+		dividend -= divisor;
+		ret++;
+	}
+
+	*remainder = dividend;
+
+	return ret;
+}
+
+#endif /* __COMMON_MATH64_H */
diff --git a/include/linux/math64.h b/include/linux/math64.h
index 65bef21cdddb..54eb486b5d1a 100644
--- a/include/linux/math64.h
+++ b/include/linux/math64.h
@@ -3,6 +3,7 @@
 #define _LINUX_MATH64_H
 
 #include <linux/types.h>
+#include <common/math64.h>
 #include <asm/div64.h>
 
 #if BITS_PER_LONG == 64
@@ -142,25 +143,6 @@ static inline s64 div_s64(s64 dividend, s32 divisor)
 
 u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder);
 
-static __always_inline u32
-__iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
-{
-	u32 ret = 0;
-
-	while (dividend >= divisor) {
-		/* The following asm() prevents the compiler from
-		   optimising this loop into a modulo operation.  */
-		asm("" : "+rm"(dividend));
-
-		dividend -= divisor;
-		ret++;
-	}
-
-	*remainder = dividend;
-
-	return ret;
-}
-
 #ifndef mul_u32_u32
 /*
  * Many a GCC version messes this up and generates a 64x64 mult :-(
-- 
2.25.0


  parent reply index

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-13 16:15 [PATCH 00/19] Introduce common headers Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 01/19] linux/const.h: Extract common header for vDSO Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 02/19] linux/bits.h: " Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 03/19] linux/limits.h: " Vincenzo Frascino
2020-02-13 16:15 ` Vincenzo Frascino [this message]
2020-02-13 16:16 ` [PATCH 05/19] linux/time.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 06/19] linux/time32.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 07/19] linux/time64.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 08/19] linux/jiffies.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 09/19] linux/ktime.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 10/19] common: Introduce processor.h Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 11/19] linux/elfnote.h: Replace elf.h with UAPI equivalent Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 12/19] arm64: Introduce asm/common/processor.h Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 13/19] arm64: vdso: Include common headers in the vdso library Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 14/19] arm64: vdso32: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 15/19] mips: vdso: Enable mips to use common headers Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 16/19] x86: vdso: Enable x86 " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 17/19] arm: vdso: Enable arm " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 18/19] lib: vdso: Enable " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 19/19] arm64: vdso32: Enable Clang Compilation Vincenzo Frascino
2020-02-13 18:44   ` Nathan Chancellor
2020-02-17 12:26     ` Vincenzo Frascino
2020-02-17 16:46       ` Will Deacon
2020-02-17 22:39         ` Ard Biesheuvel
2020-02-18 13:03           ` Vincenzo Frascino

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200213161614.23246-5-vincenzo.frascino@arm.com \
    --to=vincenzo.frascino@arm.com \
    --cc=0x7f454c46@gmail.com \
    --cc=arnd@arndb.de \
    --cc=avagin@openvz.org \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=ndesaulniers@google.com \
    --cc=paul.burton@mips.com \
    --cc=pcc@google.com \
    --cc=salyzyn@android.com \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=will.deacon@arm.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-MIPS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-mips/0 linux-mips/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-mips linux-mips/ https://lore.kernel.org/linux-mips \
		linux-mips@vger.kernel.org
	public-inbox-index linux-mips

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mips


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git