mbox series

[v2,0/8] vdso: Use only headers from the vdso/ namespace

Message ID 20240923141943.133551-1-vincenzo.frascino@arm.com (mailing list archive)
Headers show
Series vdso: Use only headers from the vdso/ namespace | expand

Message

Vincenzo Frascino Sept. 23, 2024, 2:19 p.m. UTC
The recent implementation of getrandom in the generic vdso library,
includes headers from outside of the vdso/ namespace.

The purpose of this patch series is to refactor the code to make sure
that the library uses only the allowed namespace.

The series has been rebased on [1] to simplify the testing. 

[1] git://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git master

Changes:
--------
v2:
  - Added common PAGE_SIZE and PAGE_MASK definitions.
  - Added opencoded macros where not defined.
  - Dropped VDSO_PAGE_* redefinitions.

Cc: Andy Lutomirski <luto@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>

Vincenzo Frascino (8):
  x86: vdso: Introduce asm/vdso/mman.h
  arm64: vdso: Introduce asm/vdso/mman.h
  vdso: Introduce vdso/mman.h
  vdso: Introduce vdso/page.h
  x86: vdso: Modify asm/vdso/getrandom.h to include datapage
  vdso: Modify vdso/getrandom.h to include the asm header
  vdso: Introduce uapi/vdso/random.h
  vdso: Modify getrandom to include the correct namespace.

 arch/alpha/include/asm/page.h         |  6 +----
 arch/arc/include/uapi/asm/page.h      |  7 +++--
 arch/arm/include/asm/page.h           |  5 +---
 arch/arm64/include/asm/page-def.h     |  5 +---
 arch/arm64/include/asm/vdso/mman.h    | 15 +++++++++++
 arch/csky/include/asm/page.h          |  8 ++----
 arch/hexagon/include/asm/page.h       |  4 +--
 arch/loongarch/include/asm/page.h     |  7 +----
 arch/m68k/include/asm/page.h          |  6 ++---
 arch/microblaze/include/asm/page.h    |  5 +---
 arch/mips/include/asm/page.h          |  7 +----
 arch/nios2/include/asm/page.h         |  7 +----
 arch/openrisc/include/asm/page.h      | 11 +-------
 arch/parisc/include/asm/page.h        |  4 +--
 arch/powerpc/include/asm/page.h       | 10 +------
 arch/riscv/include/asm/page.h         |  4 +--
 arch/s390/include/asm/page.h          |  4 +--
 arch/sh/include/asm/page.h            |  6 ++---
 arch/sparc/include/asm/page_32.h      |  4 +--
 arch/sparc/include/asm/page_64.h      |  4 +--
 arch/um/include/asm/page.h            |  5 +---
 arch/x86/include/asm/page_types.h     |  5 +---
 arch/x86/include/asm/vdso/getrandom.h |  2 ++
 arch/x86/include/asm/vdso/mman.h      | 15 +++++++++++
 arch/xtensa/include/asm/page.h        |  8 +-----
 include/uapi/linux/random.h           | 26 +-----------------
 include/uapi/vdso/random.h            | 38 +++++++++++++++++++++++++++
 include/vdso/datapage.h               |  2 ++
 include/vdso/getrandom.h              |  1 +
 include/vdso/mman.h                   |  7 +++++
 include/vdso/page.h                   | 18 +++++++++++++
 lib/vdso/getrandom.c                  | 22 ++++++++--------
 32 files changed, 137 insertions(+), 141 deletions(-)
 create mode 100644 arch/arm64/include/asm/vdso/mman.h
 create mode 100644 arch/x86/include/asm/vdso/mman.h
 create mode 100644 include/uapi/vdso/random.h
 create mode 100644 include/vdso/mman.h
 create mode 100644 include/vdso/page.h

Comments

Christophe Leroy Sept. 25, 2024, 6:39 a.m. UTC | #1
Le 23/09/2024 à 16:19, Vincenzo Frascino a écrit :
> The recent implementation of getrandom in the generic vdso library,
> includes headers from outside of the vdso/ namespace.
> 
> The purpose of this patch series is to refactor the code to make sure
> that the library uses only the allowed namespace.
> 
> The series has been rebased on [1] to simplify the testing.
> 
> [1] git://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git master

This tree includes random support for s390, x86, arm64 and loongarch but 
your series only handles x86 and arm64 it seems.

Christophe