diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-09-01 04:38:18 +0100 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-09-01 04:38:18 +0100 |
commit | 6b1d1235c6301a75a3310a5670f37eaed1a197e2 (patch) | |
tree | ac456edf02af82109d6f1a912277cc645d72a3ba | |
parent | pull in x86 dirs starting w/4.2 (diff) | |
download | linux-headers-patches-6b1d1235c6301a75a3310a5670f37eaed1a197e2.tar.gz linux-headers-patches-6b1d1235c6301a75a3310a5670f37eaed1a197e2.tar.bz2 linux-headers-patches-6b1d1235c6301a75a3310a5670f37eaed1a197e2.zip |
initial 4.2 patchset based on last 4.1 patchset
10 files changed, 476 insertions, 0 deletions
diff --git a/4.2/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch b/4.2/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch new file mode 100644 index 0000000..99f7f01 --- /dev/null +++ b/4.2/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch @@ -0,0 +1,28 @@ +From d1883002317ad1bed6164aeaba8746ee3379290d Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Mon, 29 Dec 2008 06:52:59 -0500 +Subject: [PATCH] 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.5.0 + diff --git a/4.2/00_all_0002-netfilter-pull-in-limits.h.patch b/4.2/00_all_0002-netfilter-pull-in-limits.h.patch new file mode 100644 index 0000000..d6a5cea --- /dev/null +++ b/4.2/00_all_0002-netfilter-pull-in-limits.h.patch @@ -0,0 +1,28 @@ +From 890e133586ee46dffad6b93ea297826988700fbf Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sat, 9 May 2009 17:30:35 -0400 +Subject: [PATCH] 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.5.0 + diff --git a/4.2/00_all_0003-convert-PAGE_SIZE-usage.patch b/4.2/00_all_0003-convert-PAGE_SIZE-usage.patch new file mode 100644 index 0000000..f47a834 --- /dev/null +++ b/4.2/00_all_0003-convert-PAGE_SIZE-usage.patch @@ -0,0 +1,54 @@ +From a418c756ca738db681b9bcb4bdd87fc194ff3664 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sat, 13 Feb 2010 03:09:23 -0500 +Subject: [PATCH] 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.5.0 + diff --git a/4.2/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch b/4.2/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch new file mode 100644 index 0000000..c1dbe98 --- /dev/null +++ b/4.2/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch @@ -0,0 +1,54 @@ +From 46c9e4a06a7cd6b8f9cf2d4a543652254825551c Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Mon, 29 Dec 2008 07:39:14 -0500 +Subject: [PATCH] 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.5.0 + diff --git a/4.2/00_all_0005-unifdef-drop-unused-errno.h-include.patch b/4.2/00_all_0005-unifdef-drop-unused-errno.h-include.patch new file mode 100644 index 0000000..c4dde1e --- /dev/null +++ b/4.2/00_all_0005-unifdef-drop-unused-errno.h-include.patch @@ -0,0 +1,32 @@ +From e427e4e87f22cdc7f2d504dec1d52e635da887df Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Tue, 6 Dec 2011 17:22:42 -0500 +Subject: [PATCH] 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.5.0 + diff --git a/4.2/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch b/4.2/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch new file mode 100644 index 0000000..15a7ac9 --- /dev/null +++ b/4.2/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch @@ -0,0 +1,33 @@ +From bcf93b4ec71525b598f57092698426c587fdca4c Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sat, 15 Nov 2014 03:37:38 -0500 +Subject: [PATCH] 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 118e6de..31bf7b5 100644 +--- a/arch/x86/Makefile ++++ b/arch/x86/Makefile +@@ -174,8 +174,10 @@ KBUILD_CFLAGS += $(call cc-option,-mno-avx,) + 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.5.0 + diff --git a/4.2/00_all_0007-timerfd-export-defines-to-userspace.patch b/4.2/00_all_0007-timerfd-export-defines-to-userspace.patch new file mode 100644 index 0000000..bc9246b --- /dev/null +++ b/4.2/00_all_0007-timerfd-export-defines-to-userspace.patch @@ -0,0 +1,74 @@ +From c13b7edeb501990f6ae6716b2d133a2ba712c547 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Tue, 30 Dec 2014 19:14:51 -0500 +Subject: [PATCH] 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 1ff9942..5c4307d 100644 +--- a/include/uapi/linux/Kbuild ++++ b/include/uapi/linux/Kbuild +@@ -394,6 +394,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.5.0 + diff --git a/4.2/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch b/4.2/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch new file mode 100644 index 0000000..41c4662 --- /dev/null +++ b/4.2/00_all_0008-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch @@ -0,0 +1,43 @@ +From b075220492da6243d5b26626e193dde30e5eeb3e Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Thu, 5 Mar 2015 00:26:58 -0500 +Subject: [PATCH] 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 cf6a65c..dcbc13d 100644 +--- a/include/uapi/linux/netlink.h ++++ b/include/uapi/linux/netlink.h +@@ -84,7 +84,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.5.0 + diff --git a/4.2/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch b/4.2/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch new file mode 100644 index 0000000..21edaa5 --- /dev/null +++ b/4.2/00_all_0009-Revert-MIPS-Provide-correct-siginfo_t.si_stime.patch @@ -0,0 +1,98 @@ +From 0ec80159fcbe90c5c562e4967e01f5345f6c223b Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@chromium.org> +Date: Tue, 21 Apr 2015 14:28:20 -0400 +Subject: [PATCH] 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.5.0 + diff --git a/4.2/00_all_0010-Revert-Hexagon-fix-signal.c-compile-error.patch b/4.2/00_all_0010-Revert-Hexagon-fix-signal.c-compile-error.patch new file mode 100644 index 0000000..77594f3 --- /dev/null +++ b/4.2/00_all_0010-Revert-Hexagon-fix-signal.c-compile-error.patch @@ -0,0 +1,32 @@ +From e4c979637a893be7917d64e474111ddf91e0f693 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Wed, 22 Apr 2015 21:26:34 -0400 +Subject: [PATCH] Revert "Hexagon: fix signal.c compile error" + +This reverts commit f3f601c1d2728f02544cfd143eaa82e5398b3e9b. + +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. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + arch/hexagon/include/uapi/asm/signal.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/hexagon/include/uapi/asm/signal.h b/arch/hexagon/include/uapi/asm/signal.h +index 98106e5..24b9988 100644 +--- a/arch/hexagon/include/uapi/asm/signal.h ++++ b/arch/hexagon/include/uapi/asm/signal.h +@@ -19,8 +19,6 @@ + #ifndef _ASM_SIGNAL_H + #define _ASM_SIGNAL_H + +-#include <uapi/asm/registers.h> +- + extern unsigned long __rt_sigtramp_template[2]; + + void do_signal(struct pt_regs *regs); +-- +2.5.0 + |