summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-03-15 02:49:02 +0000
committerMike Frysinger <vapier@gentoo.org>2016-03-15 02:49:02 +0000
commit1468509d8711e2ff0011be84cc615e95eb304ca2 (patch)
treee2e5488361037c1b63e52a905e7b004e513382b2
parentinitial import of 4.4 patchset based on last 4.3 patchset (diff)
downloadlinux-headers-patches-1468509d8711e2ff0011be84cc615e95eb304ca2.tar.gz
linux-headers-patches-1468509d8711e2ff0011be84cc615e95eb304ca2.tar.bz2
linux-headers-patches-1468509d8711e2ff0011be84cc615e95eb304ca2.zip
initial 4.5 patchset based on last 4.4 patchset
-rw-r--r--4.5/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch28
-rw-r--r--4.5/00_all_0002-netfilter-pull-in-limits.h.patch28
-rw-r--r--4.5/00_all_0003-convert-PAGE_SIZE-usage.patch54
-rw-r--r--4.5/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch54
-rw-r--r--4.5/00_all_0005-unifdef-drop-unused-errno.h-include.patch32
-rw-r--r--4.5/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch33
-rw-r--r--4.5/00_all_0007-timerfd-export-defines-to-userspace.patch74
-rw-r--r--4.5/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch43
-rw-r--r--4.5/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch98
-rw-r--r--4.5/00_all_0010-uapi-mqueue.h-add-missing-linux-types.h-include.patch43
-rw-r--r--4.5/00_all_0011-uapi-fix-System-V-buf-header-includes.patch76
11 files changed, 563 insertions, 0 deletions
diff --git a/4.5/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch b/4.5/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch
new file mode 100644
index 0000000..548d135
--- /dev/null
+++ b/4.5/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch
@@ -0,0 +1,28 @@
+From 9623d91234c77c1b28fec75293ef178cf2e22221 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 29 Dec 2008 06:52:59 -0500
+Subject: [PATCH 01/11] linux/stat.h: remove __GLIBC__ checks
+
+Only check __KERNEL__ so we don't assume the C library is glibc.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/stat.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/uapi/linux/stat.h b/include/uapi/linux/stat.h
+index 7fec7e3..256ad24 100644
+--- a/include/uapi/linux/stat.h
++++ b/include/uapi/linux/stat.h
+@@ -2,7 +2,7 @@
+ #define _UAPI_LINUX_STAT_H
+
+
+-#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
++#if defined(__KERNEL__)
+
+ #define S_IFMT 00170000
+ #define S_IFSOCK 0140000
+--
+2.6.2
+
diff --git a/4.5/00_all_0002-netfilter-pull-in-limits.h.patch b/4.5/00_all_0002-netfilter-pull-in-limits.h.patch
new file mode 100644
index 0000000..8d8b7eb
--- /dev/null
+++ b/4.5/00_all_0002-netfilter-pull-in-limits.h.patch
@@ -0,0 +1,28 @@
+From c901f4ee8b1b4c72ee70faf6f6867d05b385ec8a Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 9 May 2009 17:30:35 -0400
+Subject: [PATCH 02/11] netfilter: pull in limits.h
+
+A few netfilter sub-headers use INT_MAX which is in limits.h.
+
+URL: http://bugs.gentoo.org/246160
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/netfilter.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/uapi/linux/netfilter.h b/include/uapi/linux/netfilter.h
+index d93f949..beed62c 100644
+--- a/include/uapi/linux/netfilter.h
++++ b/include/uapi/linux/netfilter.h
+@@ -6,6 +6,7 @@
+ #include <linux/sysctl.h>
+ #include <linux/in.h>
+ #include <linux/in6.h>
++#include <limits.h>
+
+ /* Responses from hook functions. */
+ #define NF_DROP 0
+--
+2.6.2
+
diff --git a/4.5/00_all_0003-convert-PAGE_SIZE-usage.patch b/4.5/00_all_0003-convert-PAGE_SIZE-usage.patch
new file mode 100644
index 0000000..13a546f
--- /dev/null
+++ b/4.5/00_all_0003-convert-PAGE_SIZE-usage.patch
@@ -0,0 +1,54 @@
+From d659b2b31300264c6be09f529bdb923120a46add Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 13 Feb 2010 03:09:23 -0500
+Subject: [PATCH 03/11] convert PAGE_SIZE usage
+
+The size of a page may change at runtime or based on kernel settings, so
+a static value at compile time doesn't work. More importantly, no one
+exports PAGE_SIZE to user space anymore.
+
+URL: http://bugs.gentoo.org/301431
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/binfmts.h | 3 ++-
+ include/uapi/linux/resource.h | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/include/uapi/linux/binfmts.h b/include/uapi/linux/binfmts.h
+index 4eb5972..516bfcf 100644
+--- a/include/uapi/linux/binfmts.h
++++ b/include/uapi/linux/binfmts.h
+@@ -1,6 +1,7 @@
+ #ifndef _UAPI_LINUX_BINFMTS_H
+ #define _UAPI_LINUX_BINFMTS_H
+
++#include <unistd.h>
+ #include <linux/capability.h>
+
+ struct pt_regs;
+@@ -11,7 +12,7 @@ struct pt_regs;
+ * prevent the kernel from being unduly impacted by misaddressed pointers.
+ * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
+ */
+-#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
++#define MAX_ARG_STRLEN (sysconf(_SC_PAGESIZE) * 32)
+ #define MAX_ARG_STRINGS 0x7FFFFFFF
+
+ /* sizeof(linux_binprm->buf) */
+diff --git a/include/uapi/linux/resource.h b/include/uapi/linux/resource.h
+index 36fb3b5..58efd07 100644
+--- a/include/uapi/linux/resource.h
++++ b/include/uapi/linux/resource.h
+@@ -68,7 +68,8 @@ struct rlimit64 {
+ * GPG2 wants 64kB of mlocked memory, to make sure pass phrases
+ * and other sensitive information are never written to disk.
+ */
+-#define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024)
++/* No one currently defines PAGE_SIZE bigger than 64kB */
++#define MLOCK_LIMIT (64 * 1024)
+
+ /*
+ * Due to binary compatibility, the actual resource numbers
+--
+2.6.2
+
diff --git a/4.5/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch b/4.5/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch
new file mode 100644
index 0000000..d7d02be
--- /dev/null
+++ b/4.5/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch
@@ -0,0 +1,54 @@
+From c6d6fb5ee08ea8afeda7f52cd19d2b5b46e69ea9 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 29 Dec 2008 07:39:14 -0500
+Subject: [PATCH 04/11] asm-generic/fcntl.h: namespace kernel file structs
+
+No one should be using these structs, but just in case they are,
+keep them available in the __kernel_ namespace.
+
+Otherwise, trying to include something like:
+ #include <fcntl.h>
+ #include <linux/inotify.h>
+leads to horrible failure.
+
+URL: http://bugs.gentoo.org/244470
+URL: http://bugs.gentoo.org/388633
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/asm-generic/fcntl.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h
+index e063eff..a98769e 100644
+--- a/include/uapi/asm-generic/fcntl.h
++++ b/include/uapi/asm-generic/fcntl.h
+@@ -152,7 +152,7 @@
+ #define F_OWNER_PID 1
+ #define F_OWNER_PGRP 2
+
+-struct f_owner_ex {
++struct __kernel_f_owner_ex {
+ int type;
+ __kernel_pid_t pid;
+ };
+@@ -192,7 +192,7 @@ struct f_owner_ex {
+ #define __ARCH_FLOCK_PAD
+ #endif
+
+-struct flock {
++struct __kernel_flock {
+ short l_type;
+ short l_whence;
+ __kernel_off_t l_start;
+@@ -207,7 +207,7 @@ struct flock {
+ #define __ARCH_FLOCK64_PAD
+ #endif
+
+-struct flock64 {
++struct __kernel_flock64 {
+ short l_type;
+ short l_whence;
+ __kernel_loff_t l_start;
+--
+2.6.2
+
diff --git a/4.5/00_all_0005-unifdef-drop-unused-errno.h-include.patch b/4.5/00_all_0005-unifdef-drop-unused-errno.h-include.patch
new file mode 100644
index 0000000..cc3cd94
--- /dev/null
+++ b/4.5/00_all_0005-unifdef-drop-unused-errno.h-include.patch
@@ -0,0 +1,32 @@
+From 8bf7b6fe5e9b14b2d3386398d459685313791556 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 6 Dec 2011 17:22:42 -0500
+Subject: [PATCH 05/11] unifdef: drop unused errno.h include
+
+This is the only header on my system that ends up requiring kernel
+headers, so if the kernel headers aren't available, we end up being
+unable to install kernel headers :).
+
+Since this file doesn't actually use anything from errno.h, drop
+the include so it at least makes us a bit more robust on glibc.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ scripts/unifdef.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/scripts/unifdef.c b/scripts/unifdef.c
+index 7493c0e..c5dfae5 100644
+--- a/scripts/unifdef.c
++++ b/scripts/unifdef.c
+@@ -48,7 +48,6 @@
+
+ #include <ctype.h>
+ #include <err.h>
+-#include <errno.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+ #include <stdio.h>
+--
+2.6.2
+
diff --git a/4.5/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch b/4.5/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch
new file mode 100644
index 0000000..7fe0aed
--- /dev/null
+++ b/4.5/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch
@@ -0,0 +1,33 @@
+From 3021ea0ed2666e9f0f89424417398bc7e6fc493b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 15 Nov 2014 03:37:38 -0500
+Subject: [PATCH 06/11] x86: do not build relocs tool when installing headers
+
+This isn't needed to install headers, so don't bother building it.
+Otherwise we run into a chicken/egg issue where we need the kernel
+headers in order to install the kernel headers. It's also a waste
+of time.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ arch/x86/Makefile | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/x86/Makefile b/arch/x86/Makefile
+index 4086abc..71e1dfb 100644
+--- a/arch/x86/Makefile
++++ b/arch/x86/Makefile
+@@ -189,8 +189,10 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
+ KBUILD_CFLAGS += $(mflags-y)
+ KBUILD_AFLAGS += $(mflags-y)
+
++ifneq ($(filter-out headers_install,$(MAKECMDGOALS)),)
+ archscripts: scripts_basic
+ $(Q)$(MAKE) $(build)=arch/x86/tools relocs
++endif
+
+ ###
+ # Syscall table generation
+--
+2.6.2
+
diff --git a/4.5/00_all_0007-timerfd-export-defines-to-userspace.patch b/4.5/00_all_0007-timerfd-export-defines-to-userspace.patch
new file mode 100644
index 0000000..ef3cd5a
--- /dev/null
+++ b/4.5/00_all_0007-timerfd-export-defines-to-userspace.patch
@@ -0,0 +1,74 @@
+From a88783a5067f82d885653bc3140f26612aeffafa Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 30 Dec 2014 19:14:51 -0500
+Subject: [PATCH 07/11] timerfd: export defines to userspace
+
+Since userspace is expected to call timerfd syscalls directly with these
+flags/ioctls, make sure we export them so they don't have to duplicate
+the values themselves.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/linux/timerfd.h | 20 +-------------------
+ include/uapi/linux/Kbuild | 1 +
+ include/uapi/linux/timerfd.h | 36 ++++++++++++++++++++++++++++++++++++
+ 3 files changed, 38 insertions(+), 19 deletions(-)
+ create mode 100644 include/uapi/linux/timerfd.h
+
+diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
+index ebd10e6..7bb6aeb 100644
+--- a/include/uapi/linux/Kbuild
++++ b/include/uapi/linux/Kbuild
+@@ -399,6 +399,7 @@ header-y += telephony.h
+ header-y += termios.h
+ header-y += thermal.h
+ header-y += time.h
++header-y += timerfd.h
+ header-y += times.h
+ header-y += timex.h
+ header-y += tiocl.h
+diff --git a/include/uapi/linux/timerfd.h b/include/uapi/linux/timerfd.h
+new file mode 100644
+index 0000000..6fcfaa8
+--- /dev/null
++++ b/include/uapi/linux/timerfd.h
+@@ -0,0 +1,36 @@
++/*
++ * include/linux/timerfd.h
++ *
++ * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
++ *
++ */
++
++#ifndef _UAPI_LINUX_TIMERFD_H
++#define _UAPI_LINUX_TIMERFD_H
++
++#include <linux/types.h>
++
++/* For O_CLOEXEC and O_NONBLOCK */
++#include <linux/fcntl.h>
++
++/* For _IO helpers */
++#include <linux/ioctl.h>
++
++/*
++ * CAREFUL: Check include/asm-generic/fcntl.h when defining
++ * new flags, since they might collide with O_* ones. We want
++ * to re-use O_* flags that couldn't possibly have a meaning
++ * from eventfd, in order to leave a free define-space for
++ * shared O_* flags.
++ *
++ * Also make sure to update the masks in include/linux/timerfd.h
++ * when adding new flags.
++ */
++#define TFD_TIMER_ABSTIME (1 << 0)
++#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
++#define TFD_CLOEXEC O_CLOEXEC
++#define TFD_NONBLOCK O_NONBLOCK
++
++#define TFD_IOC_SET_TICKS _IOW('T', 0, __u64)
++
++#endif /* _UAPI_LINUX_TIMERFD_H */
+--
+2.6.2
+
diff --git a/4.5/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch b/4.5/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
new file mode 100644
index 0000000..b61f886
--- /dev/null
+++ b/4.5/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
@@ -0,0 +1,43 @@
+From 82772d0c953d48279b10b2ad09d36b2d5d71b12d Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 5 Mar 2015 00:26:58 -0500
+Subject: [PATCH 08/11] netlink: drop (int) cast on length arg in NLMSG_OK
+
+The NLMSG_OK macro compares three things:
+ - the len arg from the user
+ - a size_t: sizeof(struct nlmsghdr)
+ - an int: sizeof(struct nlmsghdr) casted
+ - an u32: the nlmsghdr->nlmsg_len member
+
+When building with -Wsign-compare, this macro triggers a signed compare
+warning. This is because it compares len to an int, and then compares
+it to a u32. If len is signed, we get a warning due to the last test.
+If len is unsigned, we get a warning due to the first test. Like in
+strace:
+socketutils.c:145:8: warning: comparison between signed and unsigned
+ integer expressions [-Wsign-compare]
+
+Lets drop the int cast on the first sizeof. This way, once the user
+casts len to an unsigned value, everything shakes out correctly.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/netlink.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
+index f095155..d434458 100644
+--- a/include/uapi/linux/netlink.h
++++ b/include/uapi/linux/netlink.h
+@@ -85,7 +85,7 @@ struct nlmsghdr {
+ #define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
+ #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
+ (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
+-#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
++#define NLMSG_OK(nlh,len) ((len) >= sizeof(struct nlmsghdr) && \
+ (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
+ (nlh)->nlmsg_len <= (len))
+ #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
+--
+2.6.2
+
diff --git a/4.5/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch b/4.5/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch
new file mode 100644
index 0000000..22da866
--- /dev/null
+++ b/4.5/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch
@@ -0,0 +1,98 @@
+From ab54cad35a52c5ba722214cc8a8c68f67bd7f340 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Tue, 21 Apr 2015 14:28:20 -0400
+Subject: [PATCH 09/11] Revert "MIPS: Provide correct siginfo_t.si_stime"
+
+This reverts commit 8cb48fe169dd682b6c29a3b7ef18333e4f577890.
+
+UAPI headers cannot use "uapi/" in their paths by design -- when they're
+installed, they do not have the uapi/ prefix. Otherwise doing so breaks
+userland badly:
+$ printf '#include <stddef.h>\n#include <linux/signal.h>\n' > test.c
+$ mips64-unknown-linux-gnu-gcc -c test.c
+In file included from /usr/mips64-unknown-linux-gnu/usr/include/linux/signal.h:5:0,
+ from test.c:2:
+/usr/mips64-unknown-linux-gnu/usr/include/asm/siginfo.h:31:38: fatal error: uapi/asm-generic/siginfo.h: No such file or directory
+compilation terminated.
+
+Signed-off-by: Mike Frysinger <vapier@chromium.org>
+---
+ arch/mips/include/asm/siginfo.h | 29 +++++++++++++++++++++++++++++
+ arch/mips/include/uapi/asm/siginfo.h | 11 ++++++++---
+ 2 files changed, 37 insertions(+), 3 deletions(-)
+ create mode 100644 arch/mips/include/asm/siginfo.h
+
+diff --git a/arch/mips/include/asm/siginfo.h b/arch/mips/include/asm/siginfo.h
+new file mode 100644
+index 0000000..dd9a762
+--- /dev/null
++++ b/arch/mips/include/asm/siginfo.h
+@@ -0,0 +1,29 @@
++/*
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ *
++ * Copyright (C) 1998, 1999, 2001, 2003 Ralf Baechle
++ * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
++ */
++#ifndef _ASM_SIGINFO_H
++#define _ASM_SIGINFO_H
++
++#include <uapi/asm/siginfo.h>
++
++
++/*
++ * Duplicated here because of <asm-generic/siginfo.h> braindamage ...
++ */
++#include <linux/string.h>
++
++static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
++{
++ if (from->si_code < 0)
++ memcpy(to, from, sizeof(*to));
++ else
++ /* _sigchld is currently the largest know union member */
++ memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
++}
++
++#endif /* _ASM_SIGINFO_H */
+diff --git a/arch/mips/include/uapi/asm/siginfo.h b/arch/mips/include/uapi/asm/siginfo.h
+index 2cb7fde..d08f83f 100644
+--- a/arch/mips/include/uapi/asm/siginfo.h
++++ b/arch/mips/include/uapi/asm/siginfo.h
+@@ -16,6 +16,13 @@
+ #define HAVE_ARCH_SIGINFO_T
+
+ /*
++ * We duplicate the generic versions - <asm-generic/siginfo.h> is just borked
++ * by design ...
++ */
++#define HAVE_ARCH_COPY_SIGINFO
++struct siginfo;
++
++/*
+ * Careful to keep union _sifields from shifting ...
+ */
+ #if _MIPS_SZLONG == 32
+@@ -28,9 +35,8 @@
+
+ #define __ARCH_SIGSYS
+
+-#include <uapi/asm-generic/siginfo.h>
++#include <asm-generic/siginfo.h>
+
+-/* We can't use generic siginfo_t, because our si_code and si_errno are swapped */
+ typedef struct siginfo {
+ int si_signo;
+ int si_code;
+@@ -118,6 +124,5 @@ typedef struct siginfo {
+ #define SI_TIMER __SI_CODE(__SI_TIMER, -3) /* sent by timer expiration */
+ #define SI_MESGQ __SI_CODE(__SI_MESGQ, -4) /* sent by real time mesq state change */
+
+-#include <asm-generic/siginfo.h>
+
+ #endif /* _UAPI_ASM_SIGINFO_H */
+--
+2.6.2
+
diff --git a/4.5/00_all_0010-uapi-mqueue.h-add-missing-linux-types.h-include.patch b/4.5/00_all_0010-uapi-mqueue.h-add-missing-linux-types.h-include.patch
new file mode 100644
index 0000000..2872d4b
--- /dev/null
+++ b/4.5/00_all_0010-uapi-mqueue.h-add-missing-linux-types.h-include.patch
@@ -0,0 +1,43 @@
+From 10033a8a69cac0b1b057ead22dd23ef7ce124952 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 28 Oct 2015 18:41:33 -0400
+Subject: [PATCH 10/11] uapi: mqueue.h: add missing linux/types.h include
+
+Commit 63159f5dcccb3858d88aaef800c4ee0eb4cc8577 changed the types from
+long to __kernel_long_t, but didn't add a linux/types.h include. Code
+that tries to include this header directly breaks:
+
+/usr/include/linux/mqueue.h:26:2: error: unknown type name '__kernel_long_t'
+ __kernel_long_t mq_flags; /* message queue flags */
+
+This also upsets configure tests for this header:
+checking linux/mqueue.h usability... no
+checking linux/mqueue.h presence... yes
+configure: WARNING: linux/mqueue.h: present but cannot be compiled
+configure: WARNING: linux/mqueue.h: check for missing prerequisite headers?
+configure: WARNING: linux/mqueue.h: see the Autoconf documentation
+configure: WARNING: linux/mqueue.h: section "Present But Cannot Be Compiled"
+configure: WARNING: linux/mqueue.h: proceeding with the compiler's result
+checking for linux/mqueue.h... no
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/mqueue.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/uapi/linux/mqueue.h b/include/uapi/linux/mqueue.h
+index d0a2b8e..bbd5116 100644
+--- a/include/uapi/linux/mqueue.h
++++ b/include/uapi/linux/mqueue.h
+@@ -18,6 +18,8 @@
+ #ifndef _LINUX_MQUEUE_H
+ #define _LINUX_MQUEUE_H
+
++#include <linux/types.h>
++
+ #define MQ_PRIO_MAX 32768
+ /* per-uid limit of kernel memory used by mqueue, in bytes */
+ #define MQ_BYTES_MAX 819200
+--
+2.6.2
+
diff --git a/4.5/00_all_0011-uapi-fix-System-V-buf-header-includes.patch b/4.5/00_all_0011-uapi-fix-System-V-buf-header-includes.patch
new file mode 100644
index 0000000..0207927
--- /dev/null
+++ b/4.5/00_all_0011-uapi-fix-System-V-buf-header-includes.patch
@@ -0,0 +1,76 @@
+From cd50f6550c81fc16eaa26084e6685f22169c74bf Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 2 Nov 2015 13:30:12 -0500
+Subject: [PATCH 11/11] uapi: fix System V buf header includes
+
+These headers rely on kernel types but don't include the other headers
+that define them. So when you try to include them directly, you often
+hit build failures due to unknown types.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/asm-generic/ipcbuf.h | 2 ++
+ include/uapi/asm-generic/msgbuf.h | 3 +++
+ include/uapi/asm-generic/sembuf.h | 2 ++
+ include/uapi/asm-generic/shmbuf.h | 2 ++
+ 4 files changed, 9 insertions(+)
+
+diff --git a/include/uapi/asm-generic/ipcbuf.h b/include/uapi/asm-generic/ipcbuf.h
+index 3dbcc1e..c37b32a 100644
+--- a/include/uapi/asm-generic/ipcbuf.h
++++ b/include/uapi/asm-generic/ipcbuf.h
+@@ -1,6 +1,8 @@
+ #ifndef __ASM_GENERIC_IPCBUF_H
+ #define __ASM_GENERIC_IPCBUF_H
+
++#include <linux/types.h>
++
+ /*
+ * The generic ipc64_perm structure:
+ * Note extra padding because this structure is passed back and forth
+diff --git a/include/uapi/asm-generic/msgbuf.h b/include/uapi/asm-generic/msgbuf.h
+index f55ecc4..473dcdc 100644
+--- a/include/uapi/asm-generic/msgbuf.h
++++ b/include/uapi/asm-generic/msgbuf.h
+@@ -1,7 +1,10 @@
+ #ifndef __ASM_GENERIC_MSGBUF_H
+ #define __ASM_GENERIC_MSGBUF_H
+
++#include <linux/types.h>
+ #include <asm/bitsperlong.h>
++#include <asm/ipcbuf.h>
++
+ /*
+ * generic msqid64_ds structure.
+ *
+diff --git a/include/uapi/asm-generic/sembuf.h b/include/uapi/asm-generic/sembuf.h
+index 4cb2c13..f57240f 100644
+--- a/include/uapi/asm-generic/sembuf.h
++++ b/include/uapi/asm-generic/sembuf.h
+@@ -1,7 +1,9 @@
+ #ifndef __ASM_GENERIC_SEMBUF_H
+ #define __ASM_GENERIC_SEMBUF_H
+
++#include <linux/types.h>
+ #include <asm/bitsperlong.h>
++#include <asm/ipcbuf.h>
+
+ /*
+ * The semid64_ds structure for x86 architecture.
+diff --git a/include/uapi/asm-generic/shmbuf.h b/include/uapi/asm-generic/shmbuf.h
+index 7e9fb2f..f9e28e4 100644
+--- a/include/uapi/asm-generic/shmbuf.h
++++ b/include/uapi/asm-generic/shmbuf.h
+@@ -1,7 +1,9 @@
+ #ifndef __ASM_GENERIC_SHMBUF_H
+ #define __ASM_GENERIC_SHMBUF_H
+
++#include <linux/types.h>
+ #include <asm/bitsperlong.h>
++#include <asm/ipcbuf.h>
+
+ /*
+ * The shmid64_ds structure for x86 architecture.
+--
+2.6.2
+