summaryrefslogtreecommitdiff
path: root/arch/um/include/shared/skas/stub-data.h
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin@sipsolutions.net>2024-07-03 15:45:26 +0200
committerJohannes Berg <johannes.berg@intel.com>2024-07-03 17:09:48 +0200
commitdc26184a9d4acde988e996a437b0301b81c1ae2d (patch)
treef5cf8f56284356306f06b968d512b3a5153bc9bf /arch/um/include/shared/skas/stub-data.h
parentd1d3a2e69b2419d77f8f99315ac931c5ba3cb475 (diff)
downloadlinux-dc26184a9d4acde988e996a437b0301b81c1ae2d.tar.gz
linux-dc26184a9d4acde988e996a437b0301b81c1ae2d.tar.bz2
linux-dc26184a9d4acde988e996a437b0301b81c1ae2d.zip
um: Create signal stack memory assignment in stub_data
When we switch to use seccomp, we need both the signal stack and other data (i.e. syscall information) to co-exist in the stub data. To facilitate this, start by defining separate memory areas for the stack and syscall data. This moves the signal stack onto a new page as the memory area is not sufficient to hold both signal stack and syscall information. Only change the signal stack setup for now, as the syscall code will be reworked later. Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net> Link: https://patch.msgid.link/20240703134536.1161108-3-benjamin@sipsolutions.net Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'arch/um/include/shared/skas/stub-data.h')
-rw-r--r--arch/um/include/shared/skas/stub-data.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/um/include/shared/skas/stub-data.h b/arch/um/include/shared/skas/stub-data.h
index 5e3ade3fb38b..779d2a3bac5d 100644
--- a/arch/um/include/shared/skas/stub-data.h
+++ b/arch/um/include/shared/skas/stub-data.h
@@ -8,10 +8,19 @@
#ifndef __STUB_DATA_H
#define __STUB_DATA_H
+#include <linux/compiler_types.h>
+#include <as-layout.h>
+
struct stub_data {
unsigned long offset;
int fd;
long parent_err, child_err;
+
+ /* 128 leaves enough room for additional fields in the struct */
+ unsigned char syscall_data[UM_KERN_PAGE_SIZE - 128] __aligned(16);
+
+ /* Stack for our signal handlers and for calling into . */
+ unsigned char sigstack[UM_KERN_PAGE_SIZE] __aligned(UM_KERN_PAGE_SIZE);
};
#endif