lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240614023009.221547-1-jhubbard@nvidia.com>
Date: Thu, 13 Jun 2024 19:30:03 -0700
From: John Hubbard <jhubbard@...dia.com>
To: Andrew Morton <akpm@...ux-foundation.org>,
	Jeff Xu <jeffxu@...omium.org>,
	Shuah Khan <shuah@...nel.org>
Cc: Andrei Vagin <avagin@...gle.com>,
	Axel Rasmussen <axelrasmussen@...gle.com>,
	Christian Brauner <brauner@...nel.org>,
	David Hildenbrand <david@...hat.com>,
	Kees Cook <kees@...nel.org>,
	Kent Overstreet <kent.overstreet@...ux.dev>,
	"Liam R . Howlett" <Liam.Howlett@...cle.com>,
	Muhammad Usama Anjum <usama.anjum@...labora.com>,
	Peter Xu <peterx@...hat.com>,
	Rich Felker <dalias@...c.org>,
	linux-mm@...ck.org,
	linux-kselftest@...r.kernel.org,
	LKML <linux-kernel@...r.kernel.org>,
	John Hubbard <jhubbard@...dia.com>
Subject: [PATCH v2 0/6] cleanups, fixes, and progress towards avoiding "make headers"

Jeff Xu, I apologize for this churn: I was forced to drop your
Reviewed-by and Tested-by tags from 2 of the 3 mseal patches, because
the __NR_mseal fix is completely different now.

Changes since v1:

a) Reworked the mseal fix to use the kernel's in-tree unistd*.h files,
instead of hacking in a __NR_mseal definition directly. (Thanks to David
Hildenbrand for pointing out that this needed to be done.)

b) Fixed the subject line of the kvm and mdwe patch.

c) Reordered the patches so as to group the mseal changes together.

d) ADDED an additional patch, 6/6, to remove various __NR_xx items and
checks from the mm selftests.

Cover letter, updated for v2:

Eventually, once the build succeeds on a sufficiently old distro, the
idea is to delete $(KHDR_INCLUDES) from the selftests/mm build, and then
after that, from selftests/lib.mk and all of the other selftest builds.

For now, this series merely achieves a clean build of selftests/mm on a
not-so-old distro: Ubuntu 23.04. In other words, after this series is
applied, it is possible to delete $(KHDR_INCLUDES) from
selftests/mm/Makefile and the build will still succeed.

1. Add tools/uapi/asm/unistd_[32|x32|64].h files, which include
definitions of __NR_mseal, and include them (indirectly) from the files
that use __NR_mseal. The new files are copied from ./usr/include/asm,
which is how we have agreed to do this sort of thing, see [1].

2. Add fs.h, similarly created: it was copied directly from a snapshot
of ./usr/include/linux/fs.h after running "make headers".

3. Add a few selected prctl.h values that the ksm and mdwe tests require.

4. Factor out some common code from mseal_test.c and seal_elf.c, into a
new mseal_helpers.h file.

5. Remove local __NR_* definitions and checks.

[1] commit e076eaca5906 ("selftests: break the dependency upon local
header files")

John Hubbard (6):
  selftests/mm: mseal, self_elf: fix missing __NR_mseal
  selftests/mm: mseal, self_elf: factor out test macros and other
    duplicated items
  selftests/mm: mseal, self_elf: rename TEST_END_CHECK to
    REPORT_TEST_PASS
  selftests/mm: fix vm_util.c build failures: add snapshot of fs.h
  selftests/mm: kvm, mdwe fixes to avoid requiring "make headers"
  selftests/mm: remove local __NR_* definitions

 tools/include/uapi/asm/unistd_32.h            | 458 ++++++++++++++++++
 tools/include/uapi/asm/unistd_64.h            | 380 +++++++++++++++
 tools/include/uapi/asm/unistd_x32.h           | 369 ++++++++++++++
 tools/include/uapi/linux/fs.h                 | 392 +++++++++++++++
 tools/testing/selftests/mm/hugepage-mremap.c  |   2 +-
 .../selftests/mm/ksm_functional_tests.c       |   8 +-
 tools/testing/selftests/mm/mdwe_test.c        |   1 +
 tools/testing/selftests/mm/memfd_secret.c     |  14 +-
 tools/testing/selftests/mm/mkdirty.c          |   8 +-
 tools/testing/selftests/mm/mlock2.h           |   1 +
 tools/testing/selftests/mm/mrelease_test.c    |   2 +-
 tools/testing/selftests/mm/mseal_helpers.h    |  41 ++
 tools/testing/selftests/mm/mseal_test.c       | 143 ++----
 tools/testing/selftests/mm/pagemap_ioctl.c    |   2 +-
 tools/testing/selftests/mm/protection_keys.c  |   2 +-
 tools/testing/selftests/mm/seal_elf.c         |  37 +-
 tools/testing/selftests/mm/uffd-common.c      |   4 -
 tools/testing/selftests/mm/uffd-stress.c      |  16 +-
 tools/testing/selftests/mm/uffd-unit-tests.c  |  14 +-
 tools/testing/selftests/mm/vm_util.h          |  15 +
 20 files changed, 1717 insertions(+), 192 deletions(-)
 create mode 100644 tools/include/uapi/asm/unistd_32.h
 create mode 100644 tools/include/uapi/asm/unistd_64.h
 create mode 100644 tools/include/uapi/asm/unistd_x32.h
 create mode 100644 tools/include/uapi/linux/fs.h
 create mode 100644 tools/testing/selftests/mm/mseal_helpers.h


base-commit: 2ccbdf43d5e758f8493a95252073cf9078a5fea5
-- 
2.45.2


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ