Hi,
The morello/next branch has been rebased from v6.4 to v6.7. Make sure to reset/rebase any local branch tracking next. The final 6.4-based commit has been tagged morello-last-6.4.
Note that morello.rst has moved under Documentation/arch/arm64, following the documentation reorganisation merged upstream in 6.5.
There should be no other user-visible change following this rebase, aside from upstream changes between 6.4 and 6.7. The rest of this email provides a detailed changelog for developers.
Cheers, Kevin
--------------
Noteworthy changes:
- "fs/binfmt_elf: Add additional Aux vector entries" has been slightly adapted following changes to load_elf_interp() [1]. This revealed an issue with the original patch, where the file size (p_filesz) of segments was considered instead of the memory size (p_memsz). Because we are concerned with the entirety of memory mapped for the executable/interpreter, we should rather consider p_memsz, which may be greater than p_filesz (the leftover is zero-padded / zero-mapped). The calculation of both exec_load_info and interp_load_info has been modified accordingly.
- io_uring: * New patch "io_uring: Use full pointers for IORING_SETUP_NO_MMAP" [2] following the introduction of that flag in [3]. * Adaptations following the addition of getsockopt/setsockopt [4] (patch 9-10): new struct io_uring_sqe::optval member. A new patch "io_uring/cmd: Convert compat64 pointers for OP_{G,S}ETSOCKOPT" [5] takes care of the compat64 conversion, as it cannot realistically be done upfront. * Straightforward adaptations (replacing u64_to_user_ptr() with a cast and using io_user_data_is_same() instead of direct comparison) to the following additions: - waitid operation [6] - futex operations [7] * "io_uring: Implement compat versions of uAPI structs and handle them" adapted following [8] (patch 3-4), and additions to uapi structs reflected in linux/io_uring_compat.h.
- BPF: * "bpf: compat64: add handler and convert bpf_attr in", "bpf: compat64: handle bpf_{btf,prog,link}_info" and "bpf: use user pointer types in uAPI structs" extended to cover uapi additions since 6.4. The handling of those is straightforward, albeit with a trick to handle BPF_LINK_TYPE_PERF_EVENT in convert_compat_link_info_in(), following [9].
- New commit "fs/proc: Update pagemap ioctl handler for PCuABI" to adapt the new PAGEMAP_SCAN ioctl handler [10]. These are minimal changes; the struct passed to the ioctl should be adapted too. Created issue #64 to track this [11].
- Due to the refactoring and additional macros introduced by [12], the permission split between private and shared mappings introduced in "arm64: morello: Enable access to capabilities in memory" became more difficult to implement fully. Since this permission split is introduced in a more proper and less invasive manner in "arm64: morello: Explicitly add VM_*_CAPS to private user mappings", the split was removed from the original commit, to simplify further rebasing. It should remain functionally correct, beside granting tag access to shared mappings (unlikely to be an issue when bisecting). This simplification also made the following commit unnecessary, and it has now been dropped: "arm64: Refactor PAGE_* definitions"
Minor changes:
- Added missing declarations in "arm64: add syscall wrapper for compat tasks in purecap", aligning with [13].
- Switched "arm64: morello: ptrace: Add request for reading a capability in memory" to using get_user_page_vma_remote(), following [14].
- "net: Modify ioctl to use user_uintptr_t" is now smaller (several hunks disappeared) as struct proto's ioctl callback no longer manipulates user pointers [15].
- "arm64: vdso: Build a pure-capability vDSO" adapted for the new vdso_install approach [16].
- "futex: Implement PCuABI for futex_waitv syscall" now amends the new futex_requeue syscall introduced in [17] too (simply dropping some u64_to_user_ptr()).
- Added an explicit definition of struct sched_param to "kselftests/arm64: morello: Clean-up header files", as [18] removed it from the uapi header.
- Added a new commit "tools/include: Add __kernel_uintptr_t to types.h" as arm64 kselftests include tools/include since [19], shadowing the uapi linux/types.h.
Notes:
- "arm64: morello: Handle capability faults": SEGV_CAPTAGERR conflicts with the new x86-specific (CET) SEGV_CPERR. Its value is left unchanged (10) to avoid a uapi change, which doesn't seem justified as it is currently trivial to disambiguate the two codes (one is x86-only, the other Morello-only).
Dropped:
- The following patches were posted [20] and merged upstream: * "fcntl: Cast commands with int args explicitly" * "fs: Pass argument to fcntl_setlease as int" * "pipe: Pass argument of pipe_fcntl as int" * "dnotify: Pass argument of fcntl_dirnotify as int" * "NFSv4: Fix nfs4_proc_setlease definition"
[1] https://lore.kernel.org/all/20230929031716.it.155-kees@kernel.org/ [2] https://op-lists.linaro.org/archives/list/linux-morello@op-lists.linaro.org/... [3] https://lore.kernel.org/all/20230513141643.1037620-1-axboe@kernel.dk/ [4] https://lore.kernel.org/all/20231016134750.1381153-1-leitao@debian.org/ [5] https://op-lists.linaro.org/archives/list/linux-morello@op-lists.linaro.org/... [6] https://lore.kernel.org/lkml/20230909151124.1229695-1-axboe@kernel.dk/ [7] https://lore.kernel.org/lkml/20230928172517.961093-1-axboe@kernel.dk/ [8] https://lore.kernel.org/all/447aa1b2968978c99e655ba88db536e903df0fe9.1692916... [9] https://lore.kernel.org/all/20230709025630.3735-9-laoar.shao@gmail.com/ [10] https://lore.kernel.org/all/20230821141518.870589-1-usama.anjum@collabora.co... [11] https://git.morello-project.org/morello/kernel/linux/-/issues/64 [12] https://lore.kernel.org/all/20230606145859.697944-1-joey.gouly@arm.com/ [13] https://lore.kernel.org/all/20230516160642.523862-4-arnd@kernel.org/ [14] https://lore.kernel.org/all/cover.1684350871.git.lstoakes@gmail.com/ [15] https://lore.kernel.org/all/20230609152800.830401-1-leitao@debian.org/ [16] https://lore.kernel.org/lkml/20231014105436.2119702-1-masahiroy@kernel.org/ [17] https://lore.kernel.org/all/20230921105248.511860556@noisy.programming.kicks... [18] https://lore.kernel.org/all/20230808030357.1213829-1-kolyshkin@gmail.com/ [19] https://lore.kernel.org/all/20230728-arm64-signal-memcpy-fix-v4-4-0c1290db5d... [20] https://lore.kernel.org/linux-fsdevel/20230414152459.816046-1-Luca.Vizzarro@...
linux-morello@op-lists.linaro.org