Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64...
[linux-2.6-microblaze.git] / arch / arm64 / kernel / signal32.c
index 4850333..d984282 100644 (file)
@@ -453,3 +453,42 @@ void compat_setup_restart_syscall(struct pt_regs *regs)
 {
        regs->regs[7] = __NR_compat_restart_syscall;
 }
+
+/*
+ * Compile-time assertions for siginfo_t offsets. Check NSIG* as well, as
+ * changes likely come with new fields that should be added below.
+ */
+static_assert(NSIGILL  == 11);
+static_assert(NSIGFPE  == 15);
+static_assert(NSIGSEGV == 9);
+static_assert(NSIGBUS  == 5);
+static_assert(NSIGTRAP == 6);
+static_assert(NSIGCHLD == 6);
+static_assert(NSIGSYS  == 2);
+static_assert(sizeof(compat_siginfo_t) == 128);
+static_assert(__alignof__(compat_siginfo_t) == 4);
+static_assert(offsetof(compat_siginfo_t, si_signo)     == 0x00);
+static_assert(offsetof(compat_siginfo_t, si_errno)     == 0x04);
+static_assert(offsetof(compat_siginfo_t, si_code)      == 0x08);
+static_assert(offsetof(compat_siginfo_t, si_pid)       == 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_uid)       == 0x10);
+static_assert(offsetof(compat_siginfo_t, si_tid)       == 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_overrun)   == 0x10);
+static_assert(offsetof(compat_siginfo_t, si_status)    == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_utime)     == 0x18);
+static_assert(offsetof(compat_siginfo_t, si_stime)     == 0x1c);
+static_assert(offsetof(compat_siginfo_t, si_value)     == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_int)       == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_ptr)       == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_addr)      == 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_addr_lsb)  == 0x10);
+static_assert(offsetof(compat_siginfo_t, si_lower)     == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_upper)     == 0x18);
+static_assert(offsetof(compat_siginfo_t, si_pkey)      == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_perf_data) == 0x10);
+static_assert(offsetof(compat_siginfo_t, si_perf_type) == 0x14);
+static_assert(offsetof(compat_siginfo_t, si_band)      == 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_fd)                == 0x10);
+static_assert(offsetof(compat_siginfo_t, si_call_addr) == 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_syscall)   == 0x10);
+static_assert(offsetof(compat_siginfo_t, si_arch)      == 0x14);