This series of patches enables nfs rootfs
support on the Morello board.
Patch 01 is fixing the inital kernel build error
associated with a wrong function pointer type within
the sunrpc modules due to the unlocked_ioctl fp,
the error occurs upon enabling nfs within the defconfig.
Patch 02 deals with the fallout caused by changes
inferred by patches 01. See details in the description
of the patch.
Patch 03 is enabling nfs rootfs by default in the kernel.
It was confirmed that the kernel can boot with a nfs rootfs.
V2 changes:
- patch only the modules that are actually being used
- change description and fix nits
- address the incorrect proc_compat_ioctl
Pawel Zalewski (3):
net: sunrpc: fix unlocked_ioctl handler signature
include: linux: fix proc_ioctl
arm64: morello: enable nfs rootfs by default
arch/arm64/configs/morello_transitional_pcuabi_defconfig | 2 ++
drivers/pci/proc.c | 4 ++--
include/linux/proc_fs.h | 2 +-
net/sunrpc/cache.c | 6 +++---
net/sunrpc/rpc_pipe.c | 2 +-
5 files changed, 9 insertions(+), 7 deletions(-)
--
2.34.1
Some io_uring operations' SQEs store user_data values in the addr2 field.
These don't need to be modified as they're not dereferenced by the kernel.
Reported-by: Kevin Brodsky <kevin.brodsky(a)arm.com>
Signed-off-by: Tudor Cretu <tudor.cretu(a)arm.com>
---
Review branch:
https://git.morello-project.org/tudcre01/linux/-/commits/morello/addr2_fix
---
io_uring/io_uring.h | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h
index 5b4f0f298ad9..db4f91cc64b2 100644
--- a/io_uring/io_uring.h
+++ b/io_uring/io_uring.h
@@ -132,9 +132,23 @@ static inline void convert_compat64_io_uring_sqe(struct io_ring_ctx *ctx,
sqe->ioprio = READ_ONCE(compat_sqe->ioprio);
sqe->fd = READ_ONCE(compat_sqe->fd);
BUILD_BUG_COMPAT_SQE_UNION_ELEM(addr2, addr);
- sqe->addr2 = (__kernel_uintptr_t)compat_ptr(READ_ONCE(compat_sqe->addr2));
- BUILD_BUG_COMPAT_SQE_UNION_ELEM(addr, len);
+ /*
+ * Some opcodes set a user_data value in the addr2 field to be matched
+ * with a pre-existing IO event's user_data or to propagate it to the
+ * user_data field of a CQE. It's not dereferenced by the kernel, so
+ * don't modify it.
+ */
+ switch (sqe->opcode) {
+ case IORING_OP_POLL_REMOVE:
+ case IORING_OP_MSG_RING:
+ sqe->addr2 = (__kernel_uintptr_t)READ_ONCE(compat_sqe->addr2);
+ break;
+ default:
+ sqe->addr2 = (__kernel_uintptr_t)compat_ptr(READ_ONCE(compat_sqe->addr2));
+ break;
+ }
+ BUILD_BUG_COMPAT_SQE_UNION_ELEM(addr, len);
/*
* Some opcodes set a user_data value in the addr field to be matched
* with a pre-existing IO event's user_data. It's not dereferenced by
--
2.34.1
Hi,
This is a short announcement following the latest merge of next into
master today. This merge had been delayed due to the 1.6 integration
process, and a discovered incompatibility with GDB, which has now been
addressed. Special thanks to Luis Machado for looking into this on the
GDB side!
As a result, please make sure to use the *latest GDB* [1] when running
the latest kernel from master.
Also part of this merge, an index of CHERI-related documentation is now
available under Documentation/cheri [2], and the PCuABI porting guide
was moved there.
Cheers,
Kevin
[1]
https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/user…
[2]
https://git.morello-project.org/morello/kernel/linux/-/tree/morello/master/…
Hi All,
I am glad to inform you that our SDK for Morello is finally ready. After months
of hard work we are happy to share with you the results of our work.
Our motto is "Let Linux developers focus on the porting of their own
application" and today we are taking the first steps to deliver on that.
[Morello SDK]
In less than 10 minutes you should be able to setup a docker container with
everything you need to build an application for Morello.
- Documentation: https://sdk.morello-project.org/
- Code repository: https://git.morello-project.org/morello/morello-sdk
If you want to try a demo of the SDK that runs on a Morello FVP (for more
information on what is an FVP: www.morello-project.org) please have a look below:
[Morello Linux]
In less than 10 minutes you should be able to setup a docker container with
everything you need to build and boot into a Morello Debian environment.
- Documentation: https://linux.morello-project.org/
- Code repository: https://git.morello-project.org/morello/morello-linux
Note: The documentation covers the instructions for Linux but if you know what
you are doing and are familiar with docker no one stops you from running our
solution on Windows or Mac.
Are we done with it?
No, by any mean. This is just the beginning and we need your help and
collaboration to make sure that we improve our solution to meet developers
needs: your needs!
So why don't you try it and let us know your thoughts?
Thanks and Regards,
Vincenzo
Hi,
The top of the master branch has been tagged [0] as part of the
integration drop 1.6.
Below is the changelog for kernel users, since the previous integration
drop (1.5).
New features
------------
- Read/write tag access in mappings is now advertised as rc/wc in
/proc/<pid>/smaps [1].
- The clone3 syscall now reads full capabilities from userspace in
PCuABI, thanks to an updated layout for struct clone_args. The new
struct definition is documented in the PCuABI specification [2].
- Device trees for the Morello board and FVP are now included [3].
- A minimal set of options to run a graphical environment is now enabled
in the transitional PCuABI defconfig [4].
- The branch was rebased on the 6.1 upstream release. The only
user-facing Morello-related change is an updated value for
HWCAP2_MORELLO; see the announcement email [5] for details.
Bug fixes
---------
- Fixed ptrace(PTRACE_POKEDATA) writing too much data in purecap.
- Fixed most remaining LTP failures in compat64 and purecap (notably by
fixing struct layouts and updating internal constants for compat64).
- Fixed a Bionic tests failure in compat64, which was due to the
preadv/pwritev syscall handlers misreading the offset argument.
- Fixed the vast majority of warnings when building the kernel with GCC.
Cheers,
Kevin
[0]
https://git.morello-project.org/morello/kernel/linux/-/commits/morello-rele…
[1]
https://git.morello-project.org/morello/kernel/linux/-/blob/morello-release…
[2]
https://git.morello-project.org/morello/kernel/linux/-/wikis/Morello-pure-c…
[3] arch/arm64/boot/dts/arm/morello-{soc,fvp}.dts
[4] arch/arm64/configs/morello_transitional_pcuabi_defconfig
[5]
https://op-lists.linaro.org/archives/list/linux-morello@op-lists.linaro.org…
This series of patches enables nfs rootfs support on the Morello board.
Patches 01 and 02 fix the inital kernel build error associated with a wrong
function pointer type within the sunrpc modules due to the unlocked_ioctl fp,
the error occurs upon enabling nfs within the defconfig.
Patches 03-09 deal with the fallout caused by changes inferred by patches 01 and 02.
Details can be found in the description of patch 03.
Patch 10 is enabling nfs rootfs by default in the kernel.
It was confirmed that the kernel can boot with a nfs rootfs,
the other affected modules were not tested.
Pawel Zalewski (10):
net:sunrpc: fix incompatible function pointer type in cache
net:sunrpc: fix incompatible function pointer type in rpc_pipe
include:linux: proc_ioctl should take user_uintptr_t as argument
net:sunrpc: fix incompatible function pointer type in cache
sound:core: fix incompatible function pointer type in info
scsi:esas2r: fix incompatible function pointer type in esas2r_main
pci: fix incompatible function pointer type in proc
hwmon: fix incompatible function pointer type in dell-smm-hwmon
cpu:mtrr: fix incompatible function pointer type in if
defconfig: enable nfs rootfs by default
arch/arm64/configs/morello_transitional_pcuabi_defconfig | 2 ++
arch/x86/kernel/cpu/mtrr/if.c | 2 +-
drivers/hwmon/dell-smm-hwmon.c | 2 +-
drivers/pci/proc.c | 2 +-
drivers/scsi/esas2r/esas2r_main.c | 2 +-
include/linux/proc_fs.h | 4 ++--
include/sound/info.h | 2 +-
net/sunrpc/cache.c | 6 +++---
net/sunrpc/rpc_pipe.c | 2 +-
sound/core/info.c | 2 +-
10 files changed, 14 insertions(+), 12 deletions(-)
--
2.34.1