]> err.no Git - linux-2.6/blobdiff - include/asm-generic/siginfo.h
netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP
[linux-2.6] / include / asm-generic / siginfo.h
index 9cac8e8dde519460b7b991008fe16a6d74580243..8786e01e0db8060582590e8a4451f7387afdfd8b 100644 (file)
@@ -236,11 +236,18 @@ typedef struct siginfo {
 #define SIGEV_THREAD   2       /* deliver via thread creation */
 #define SIGEV_THREAD_ID 4      /* deliver to thread */
 
-#define SIGEV_MAX_SIZE 64
-#ifndef SIGEV_PAD_SIZE
-#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 3)
+/*
+ * This works because the alignment is ok on all current architectures
+ * but we leave open this being overridden in the future
+ */
+#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
+#define __ARCH_SIGEV_PREAMBLE_SIZE     (sizeof(int) * 2 + sizeof(sigval_t))
 #endif
 
+#define SIGEV_MAX_SIZE 64
+#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) \
+               / sizeof(int))
+
 typedef struct sigevent {
        sigval_t sigev_value;
        int sigev_signo;