aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-12-27 13:55:15 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-01-06 15:06:28 +0000
commitaa0f0d6211a6fd30c88663c995a7586e45b67828 (patch)
tree176a2905975e498f08eb521609552a92e0a1946f
parent66a195c35299c023670b8d68d4a0b62588d15884 (diff)
downloadalpine_aports-aa0f0d6211a6fd30c88663c995a7586e45b67828.tar.bz2
alpine_aports-aa0f0d6211a6fd30c88663c995a7586e45b67828.tar.xz
alpine_aports-aa0f0d6211a6fd30c88663c995a7586e45b67828.zip
main/linux-grsec: upgrade to grsecurity-2.2.0-2.6.35.10-unofficial
(cherry picked from commit 9c9e8602b549b951c66f3c56501cb9a1e1a24056)
-rw-r--r--main/linux-grsec/APKBUILD14
-rw-r--r--main/linux-grsec/grsecurity-2.2.0-2.6.35.10-unofficial.patch (renamed from main/linux-grsec/grsecurity-2.2.0-2.6.35.9-unofficial.patch)388
-rw-r--r--main/linux-grsec/r8169-fix-rx-checksum-offload.patch62
3 files changed, 136 insertions, 328 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 8dc85db532..84a7daef7e 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,9 +2,9 @@
2 2
3_flavor=grsec 3_flavor=grsec
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=2.6.35.9 5pkgver=2.6.35.10
6_kernver=2.6.35 6_kernver=2.6.35
7pkgrel=6 7pkgrel=0
8pkgdesc="Linux kernel with grsecurity" 8pkgdesc="Linux kernel with grsecurity"
9url=http://grsecurity.net 9url=http://grsecurity.net
10depends="mkinitfs linux-firmware" 10depends="mkinitfs linux-firmware"
@@ -13,12 +13,11 @@ options="!strip"
13_config=${config:-kernelconfig.${CARCH}} 13_config=${config:-kernelconfig.${CARCH}}
14install= 14install=
15source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 15source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
16 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 16 http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v${pkgver%.*}/patch-$pkgver.bz2
17 grsecurity-2.2.0-2.6.35.9-unofficial.patch 17 grsecurity-2.2.0-$pkgver-unofficial.patch
18 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch 18 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch
19 xfrm-fix-gre-key-endianess.patch 19 xfrm-fix-gre-key-endianess.patch
20 0004-arp-flush-arp-cache-on-device-change.patch 20 0004-arp-flush-arp-cache-on-device-change.patch
21 r8169-fix-rx-checksum-offload.patch
22 r8169-add-gro-support.patch 21 r8169-add-gro-support.patch
23 22
24 0001-Staging-hv-fix-sleeping-while-atomic-issue.patch 23 0001-Staging-hv-fix-sleeping-while-atomic-issue.patch
@@ -147,12 +146,11 @@ firmware() {
147} 146}
148 147
149md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 148md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2
150eca407cf4872ad77ae23adc8242389c4 patch-2.6.35.9.bz2 1490741b3219a009fdfc41c766416007fcf patch-2.6.35.10.bz2
151bec8a242eb219c14ce45150a0155a5ac grsecurity-2.2.0-2.6.35.9-unofficial.patch 1503855791bfc2ee4fff05fc3c783a3a477 grsecurity-2.2.0-2.6.35.10-unofficial.patch
152eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch 151eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch
153ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch 152ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch
154776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch 153776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch
1550ccecafd4123dcad0b0cd7787553d734 r8169-fix-rx-checksum-offload.patch
156139b39da44ecb577275be53d7d365949 r8169-add-gro-support.patch 154139b39da44ecb577275be53d7d365949 r8169-add-gro-support.patch
157648d8b477248f233c318a3b7a961febf 0001-Staging-hv-fix-sleeping-while-atomic-issue.patch 155648d8b477248f233c318a3b7a961febf 0001-Staging-hv-fix-sleeping-while-atomic-issue.patch
1587cae2d1e1947fa57d7aaaf31c649471c 0004-staging-hv-fix-netvsc-sleeping-while-atomic.patch 1567cae2d1e1947fa57d7aaaf31c649471c 0004-staging-hv-fix-netvsc-sleeping-while-atomic.patch
diff --git a/main/linux-grsec/grsecurity-2.2.0-2.6.35.9-unofficial.patch b/main/linux-grsec/grsecurity-2.2.0-2.6.35.10-unofficial.patch
index 884091e1ed..bfdddfb8fd 100644
--- a/main/linux-grsec/grsecurity-2.2.0-2.6.35.9-unofficial.patch
+++ b/main/linux-grsec/grsecurity-2.2.0-2.6.35.10-unofficial.patch
@@ -166,7 +166,7 @@ index 2b2407d..4ebd036 100644
166 166
167 pcd. [PARIDE] 167 pcd. [PARIDE]
168diff --git a/Makefile b/Makefile 168diff --git a/Makefile b/Makefile
169index 90ba786..2b577fd 100644 169index 6538501..6616857 100644
170--- a/Makefile 170--- a/Makefile
171+++ b/Makefile 171+++ b/Makefile
172@@ -230,8 +230,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ 172@@ -230,8 +230,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -10832,7 +10832,7 @@ index d938871..1e97c91 100644
10832 10832
10833 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) { 10833 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
10834diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 10834diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
10835index 1d3cdda..351f83c 100644 10835index 5384b04..0c28c59 100644
10836--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 10836--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
10837+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 10837+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
10838@@ -484,7 +484,7 @@ static const struct dmi_system_id sw_any_bug_dmi_table[] = { 10838@@ -484,7 +484,7 @@ static const struct dmi_system_id sw_any_bug_dmi_table[] = {
@@ -15502,7 +15502,7 @@ index 1eb7a4a..66513e00 100644
15502 #define APIC_LVT_NUM 6 15502 #define APIC_LVT_NUM 6
15503 /* 14 is the version for Xeon and Pentium 8.4.8*/ 15503 /* 14 is the version for Xeon and Pentium 8.4.8*/
15504diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c 15504diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
15505index 02a5603..ab3491b 100644 15505index 9ca7032..36aa477 100644
15506--- a/arch/x86/kvm/svm.c 15506--- a/arch/x86/kvm/svm.c
15507+++ b/arch/x86/kvm/svm.c 15507+++ b/arch/x86/kvm/svm.c
15508@@ -2825,7 +2825,11 @@ static void reload_tss(struct kvm_vcpu *vcpu) 15508@@ -2825,7 +2825,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
@@ -15527,7 +15527,7 @@ index 02a5603..ab3491b 100644
15527 .disabled_by_bios = is_disabled, 15527 .disabled_by_bios = is_disabled,
15528 .hardware_setup = svm_hardware_setup, 15528 .hardware_setup = svm_hardware_setup,
15529diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c 15529diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
15530index 7d04388..1180545 100644 15530index 39ac456..37d565b 100644
15531--- a/arch/x86/kvm/vmx.c 15531--- a/arch/x86/kvm/vmx.c
15532+++ b/arch/x86/kvm/vmx.c 15532+++ b/arch/x86/kvm/vmx.c
15533@@ -654,7 +654,11 @@ static void reload_tss(void) 15533@@ -654,7 +654,11 @@ static void reload_tss(void)
@@ -15612,7 +15612,7 @@ index 7d04388..1180545 100644
15612 .disabled_by_bios = vmx_disabled_by_bios, 15612 .disabled_by_bios = vmx_disabled_by_bios,
15613 .hardware_setup = hardware_setup, 15613 .hardware_setup = hardware_setup,
15614diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c 15614diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
15615index be92511..a2fce11 100644 15615index eee5cdd..415d3fd 100644
15616--- a/arch/x86/kvm/x86.c 15616--- a/arch/x86/kvm/x86.c
15617+++ b/arch/x86/kvm/x86.c 15617+++ b/arch/x86/kvm/x86.c
15618@@ -86,7 +86,7 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu); 15618@@ -86,7 +86,7 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu);
@@ -15713,7 +15713,7 @@ index be92511..a2fce11 100644
15713 return -EINVAL; 15713 return -EINVAL;
15714 if (irqchip_in_kernel(vcpu->kvm)) 15714 if (irqchip_in_kernel(vcpu->kvm))
15715 return -ENXIO; 15715 return -ENXIO;
15716@@ -4070,10 +4072,10 @@ void kvm_after_handle_nmi(struct kvm_vcpu *vcpu) 15716@@ -4076,10 +4078,10 @@ void kvm_after_handle_nmi(struct kvm_vcpu *vcpu)
15717 } 15717 }
15718 EXPORT_SYMBOL_GPL(kvm_after_handle_nmi); 15718 EXPORT_SYMBOL_GPL(kvm_after_handle_nmi);
15719 15719
@@ -20844,7 +20844,7 @@ index ac74869..fe8ff73 100644
20844-} 20844-}
20845-__setup("vdso=", vdso_setup); 20845-__setup("vdso=", vdso_setup);
20846diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c 20846diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
20847index 4d32089..78f1b61 100644 20847index 25d787c..54e84e1 100644
20848--- a/arch/x86/xen/enlighten.c 20848--- a/arch/x86/xen/enlighten.c
20849+++ b/arch/x86/xen/enlighten.c 20849+++ b/arch/x86/xen/enlighten.c
20850@@ -74,8 +74,6 @@ EXPORT_SYMBOL_GPL(xen_start_info); 20850@@ -74,8 +74,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
@@ -20865,7 +20865,7 @@ index 4d32089..78f1b61 100644
20865 end = start + __get_cpu_var(idt_desc).size + 1; 20865 end = start + __get_cpu_var(idt_desc).size + 1;
20866 20866
20867 xen_mc_flush(); 20867 xen_mc_flush();
20868@@ -1103,7 +1101,17 @@ asmlinkage void __init xen_start_kernel(void) 20868@@ -1099,7 +1097,17 @@ asmlinkage void __init xen_start_kernel(void)
20869 __userpte_alloc_gfp &= ~__GFP_HIGHMEM; 20869 __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
20870 20870
20871 /* Work out if we support NX */ 20871 /* Work out if we support NX */
@@ -20884,7 +20884,7 @@ index 4d32089..78f1b61 100644
20884 20884
20885 xen_setup_features(); 20885 xen_setup_features();
20886 20886
20887@@ -1134,13 +1142,6 @@ asmlinkage void __init xen_start_kernel(void) 20887@@ -1130,13 +1138,6 @@ asmlinkage void __init xen_start_kernel(void)
20888 20888
20889 machine_ops = xen_machine_ops; 20889 machine_ops = xen_machine_ops;
20890 20890
@@ -20998,7 +20998,7 @@ index 58916af..9cb880b 100644
20998 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll); 20998 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
20999 int rearm = 0, budget = blk_iopoll_budget; 20999 int rearm = 0, budget = blk_iopoll_budget;
21000diff --git a/block/blk-map.c b/block/blk-map.c 21000diff --git a/block/blk-map.c b/block/blk-map.c
21001index 9083cf0..b2f51c9 100644 21001index 30a7e51..3254ef2 100644
21002--- a/block/blk-map.c 21002--- a/block/blk-map.c
21003+++ b/block/blk-map.c 21003+++ b/block/blk-map.c
21004@@ -54,7 +54,7 @@ static int __blk_rq_map_user(struct request_queue *q, struct request *rq, 21004@@ -54,7 +54,7 @@ static int __blk_rq_map_user(struct request_queue *q, struct request *rq,
@@ -21010,7 +21010,7 @@ index 9083cf0..b2f51c9 100644
21010 bio = bio_map_user(q, NULL, uaddr, len, reading, gfp_mask); 21010 bio = bio_map_user(q, NULL, uaddr, len, reading, gfp_mask);
21011 else 21011 else
21012 bio = bio_copy_user(q, map_data, uaddr, len, reading, gfp_mask); 21012 bio = bio_copy_user(q, map_data, uaddr, len, reading, gfp_mask);
21013@@ -297,7 +297,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf, 21013@@ -299,7 +299,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
21014 if (!len || !kbuf) 21014 if (!len || !kbuf)
21015 return -EINVAL; 21015 return -EINVAL;
21016 21016
@@ -21046,10 +21046,10 @@ index 358f80b..31b2333 100644
21046 21046
21047 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); 21047 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
21048diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c 21048diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
21049index dc58402..042d6d3 100644 21049index 68919e2..e4cdf22 100644
21050--- a/drivers/acpi/battery.c 21050--- a/drivers/acpi/battery.c
21051+++ b/drivers/acpi/battery.c 21051+++ b/drivers/acpi/battery.c
21052@@ -810,7 +810,7 @@ DECLARE_FILE_FUNCTIONS(alarm); 21052@@ -846,7 +846,7 @@ DECLARE_FILE_FUNCTIONS(alarm);
21053 } 21053 }
21054 21054
21055 static struct battery_file { 21055 static struct battery_file {
@@ -22936,7 +22936,7 @@ index b8578c3..41e5c92 100644
22936 .scr_read = uli_scr_read, 22936 .scr_read = uli_scr_read,
22937 .scr_write = uli_scr_write, 22937 .scr_write = uli_scr_write,
22938diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c 22938diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
22939index 4730c42..10633bf 100644 22939index c51b8d2..1a305a3 100644
22940--- a/drivers/ata/sata_via.c 22940--- a/drivers/ata/sata_via.c
22941+++ b/drivers/ata/sata_via.c 22941+++ b/drivers/ata/sata_via.c
22942@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sht = { 22942@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sht = {
@@ -23987,19 +23987,6 @@ index 702acce..c13b134 100644
23987 wake_up(&zatm_vcc->tx_wait); 23987 wake_up(&zatm_vcc->tx_wait);
23988 } 23988 }
23989 23989
23990diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
23991index 8a549db..8403fd5 100644
23992--- a/drivers/block/pktcdvd.c
23993+++ b/drivers/block/pktcdvd.c
23994@@ -2368,7 +2368,7 @@ static void pkt_release_dev(struct pktcdvd_device *pd, int flush)
23995 pkt_shrink_pktlist(pd);
23996 }
23997
23998-static struct pktcdvd_device *pkt_find_dev_from_minor(int dev_minor)
23999+static struct pktcdvd_device *pkt_find_dev_from_minor(unsigned int dev_minor)
24000 {
24001 if (dev_minor >= MAX_WRITERS)
24002 return NULL;
24003diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c 23990diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
24004index 43412c0..3db9a62 100644 23991index 43412c0..3db9a62 100644
24005--- a/drivers/char/agp/frontend.c 23992--- a/drivers/char/agp/frontend.c
@@ -24014,10 +24001,10 @@ index 43412c0..3db9a62 100644
24014 24001
24015 client = agp_find_client_by_pid(reserve.pid); 24002 client = agp_find_client_by_pid(reserve.pid);
24016diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c 24003diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
24017index 4187121..2ba214e 100644 24004index e38fe2be..64355e5 100644
24018--- a/drivers/char/agp/intel-agp.c 24005--- a/drivers/char/agp/intel-agp.c
24019+++ b/drivers/char/agp/intel-agp.c 24006+++ b/drivers/char/agp/intel-agp.c
24020@@ -1055,7 +1055,7 @@ static struct pci_device_id agp_intel_pci_table[] = { 24007@@ -1056,7 +1056,7 @@ static struct pci_device_id agp_intel_pci_table[] = {
24021 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB), 24008 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB),
24022 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB), 24009 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB),
24023 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB), 24010 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_S_HB),
@@ -24027,7 +24014,7 @@ index 4187121..2ba214e 100644
24027 24014
24028 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); 24015 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table);
24029diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c 24016diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
24030index a0a1829..ad5cbf0 100644 24017index f8e7d89..5b17903 100644
24031--- a/drivers/char/hpet.c 24018--- a/drivers/char/hpet.c
24032+++ b/drivers/char/hpet.c 24019+++ b/drivers/char/hpet.c
24033@@ -429,7 +429,7 @@ static int hpet_release(struct inode *inode, struct file *file) 24020@@ -429,7 +429,7 @@ static int hpet_release(struct inode *inode, struct file *file)
@@ -24039,7 +24026,7 @@ index a0a1829..ad5cbf0 100644
24039 24026
24040 static long hpet_ioctl(struct file *file, unsigned int cmd, 24027 static long hpet_ioctl(struct file *file, unsigned int cmd,
24041 unsigned long arg) 24028 unsigned long arg)
24042@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets, 24029@@ -568,7 +568,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
24043 } 24030 }
24044 24031
24045 static int 24032 static int
@@ -24048,7 +24035,7 @@ index a0a1829..ad5cbf0 100644
24048 { 24035 {
24049 struct hpet_timer __iomem *timer; 24036 struct hpet_timer __iomem *timer;
24050 struct hpet __iomem *hpet; 24037 struct hpet __iomem *hpet;
24051@@ -596,11 +596,11 @@ hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg, int kernel) 24038@@ -611,11 +611,11 @@ hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg, int kernel)
24052 { 24039 {
24053 struct hpet_info info; 24040 struct hpet_info info;
24054 24041
@@ -24062,7 +24049,7 @@ index a0a1829..ad5cbf0 100644
24062 info.hi_flags = 24049 info.hi_flags =
24063 readq(&timer->hpet_config) & Tn_PER_INT_CAP_MASK; 24050 readq(&timer->hpet_config) & Tn_PER_INT_CAP_MASK;
24064 info.hi_hpet = hpetp->hp_which; 24051 info.hi_hpet = hpetp->hp_which;
24065@@ -998,7 +998,7 @@ static struct acpi_driver hpet_acpi_driver = { 24052@@ -1015,7 +1015,7 @@ static struct acpi_driver hpet_acpi_driver = {
24066 }, 24053 },
24067 }; 24054 };
24068 24055
@@ -24216,7 +24203,7 @@ index 4f3f8c9..3708979 100644
24216 intf->proc_dir = NULL; 24203 intf->proc_dir = NULL;
24217 24204
24218diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c 24205diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
24219index ff68e7c..eff311f 100644 24206index b1a3014..50af3c6 100644
24220--- a/drivers/char/ipmi/ipmi_si_intf.c 24207--- a/drivers/char/ipmi/ipmi_si_intf.c
24221+++ b/drivers/char/ipmi/ipmi_si_intf.c 24208+++ b/drivers/char/ipmi/ipmi_si_intf.c
24222@@ -286,7 +286,7 @@ struct smi_info { 24209@@ -286,7 +286,7 @@ struct smi_info {
@@ -24240,7 +24227,7 @@ index ff68e7c..eff311f 100644
24240 24227
24241 #define SI_MAX_PARMS 4 24228 #define SI_MAX_PARMS 4
24242 24229
24243@@ -3143,7 +3143,7 @@ static int try_smi_init(struct smi_info *new_smi) 24230@@ -3151,7 +3151,7 @@ static int try_smi_init(struct smi_info *new_smi)
24244 atomic_set(&new_smi->req_events, 0); 24231 atomic_set(&new_smi->req_events, 0);
24245 new_smi->run_to_completion = 0; 24232 new_smi->run_to_completion = 0;
24246 for (i = 0; i < SI_NUM_STATS; i++) 24233 for (i = 0; i < SI_NUM_STATS; i++)
@@ -24906,10 +24893,10 @@ index 507441a..53d5b60 100644
24906 * Initialize the console device. This is called *early*, so 24893 * Initialize the console device. This is called *early*, so
24907 * we can't necessarily depend on lots of kernel help here. 24894 * we can't necessarily depend on lots of kernel help here.
24908diff --git a/drivers/char/tty_ldisc.c b/drivers/char/tty_ldisc.c 24895diff --git a/drivers/char/tty_ldisc.c b/drivers/char/tty_ldisc.c
24909index 500e740..3720c43 100644 24896index 236628f..235d0f9 100644
24910--- a/drivers/char/tty_ldisc.c 24897--- a/drivers/char/tty_ldisc.c
24911+++ b/drivers/char/tty_ldisc.c 24898+++ b/drivers/char/tty_ldisc.c
24912@@ -75,7 +75,7 @@ static void put_ldisc(struct tty_ldisc *ld) 24899@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc *ld)
24913 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) { 24900 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) {
24914 struct tty_ldisc_ops *ldo = ld->ops; 24901 struct tty_ldisc_ops *ldo = ld->ops;
24915 24902
@@ -24918,7 +24905,7 @@ index 500e740..3720c43 100644
24918 module_put(ldo->owner); 24905 module_put(ldo->owner);
24919 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 24906 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
24920 24907
24921@@ -109,7 +109,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc) 24908@@ -111,7 +111,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
24922 spin_lock_irqsave(&tty_ldisc_lock, flags); 24909 spin_lock_irqsave(&tty_ldisc_lock, flags);
24923 tty_ldiscs[disc] = new_ldisc; 24910 tty_ldiscs[disc] = new_ldisc;
24924 new_ldisc->num = disc; 24911 new_ldisc->num = disc;
@@ -24927,7 +24914,7 @@ index 500e740..3720c43 100644
24927 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 24914 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
24928 24915
24929 return ret; 24916 return ret;
24930@@ -137,7 +137,7 @@ int tty_unregister_ldisc(int disc) 24917@@ -139,7 +139,7 @@ int tty_unregister_ldisc(int disc)
24931 return -EINVAL; 24918 return -EINVAL;
24932 24919
24933 spin_lock_irqsave(&tty_ldisc_lock, flags); 24920 spin_lock_irqsave(&tty_ldisc_lock, flags);
@@ -24936,7 +24923,7 @@ index 500e740..3720c43 100644
24936 ret = -EBUSY; 24923 ret = -EBUSY;
24937 else 24924 else
24938 tty_ldiscs[disc] = NULL; 24925 tty_ldiscs[disc] = NULL;
24939@@ -158,7 +158,7 @@ static struct tty_ldisc_ops *get_ldops(int disc) 24926@@ -160,7 +160,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
24940 if (ldops) { 24927 if (ldops) {
24941 ret = ERR_PTR(-EAGAIN); 24928 ret = ERR_PTR(-EAGAIN);
24942 if (try_module_get(ldops->owner)) { 24929 if (try_module_get(ldops->owner)) {
@@ -24945,7 +24932,7 @@ index 500e740..3720c43 100644
24945 ret = ldops; 24932 ret = ldops;
24946 } 24933 }
24947 } 24934 }
24948@@ -171,7 +171,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops) 24935@@ -173,7 +173,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
24949 unsigned long flags; 24936 unsigned long flags;
24950 24937
24951 spin_lock_irqsave(&tty_ldisc_lock, flags); 24938 spin_lock_irqsave(&tty_ldisc_lock, flags);
@@ -24955,7 +24942,7 @@ index 500e740..3720c43 100644
24955 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 24942 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
24956 } 24943 }
24957diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c 24944diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c
24958index cb19dbc..2107818 100644 24945index 85cf230..156d86c 100644
24959--- a/drivers/char/vt_ioctl.c 24946--- a/drivers/char/vt_ioctl.c
24960+++ b/drivers/char/vt_ioctl.c 24947+++ b/drivers/char/vt_ioctl.c
24961@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm, struct kbd_str 24948@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm, struct kbd_str
@@ -25354,7 +25341,7 @@ index 56f6642..98fbcce 100644
25354 .detect = tfp410_detect, 25341 .detect = tfp410_detect,
25355 .mode_valid = tfp410_mode_valid, 25342 .mode_valid = tfp410_mode_valid,
25356diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c 25343diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
25357index d396fe5..b17192b 100644 25344index bdd39fb..d35c5d1 100644
25358--- a/drivers/gpu/drm/i915/i915_dma.c 25345--- a/drivers/gpu/drm/i915/i915_dma.c
25359+++ b/drivers/gpu/drm/i915/i915_dma.c 25346+++ b/drivers/gpu/drm/i915/i915_dma.c
25360@@ -1348,7 +1348,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev) 25347@@ -1348,7 +1348,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
@@ -26236,7 +26223,7 @@ index f34b22b..04ac86f 100644
26236 static int psaux_registered; 26223 static int psaux_registered;
26237 #endif 26224 #endif
26238diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h 26225diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
26239index ed7ad74..902f63f 100644 26226index 8c53926..5259b1e 100644
26240--- a/drivers/input/serio/i8042-x86ia64io.h 26227--- a/drivers/input/serio/i8042-x86ia64io.h
26241+++ b/drivers/input/serio/i8042-x86ia64io.h 26228+++ b/drivers/input/serio/i8042-x86ia64io.h
26242@@ -183,7 +183,7 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = { 26229@@ -183,7 +183,7 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
@@ -26248,7 +26235,7 @@ index ed7ad74..902f63f 100644
26248 }; 26235 };
26249 26236
26250 /* 26237 /*
26251@@ -413,7 +413,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = { 26238@@ -420,7 +420,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
26252 DMI_MATCH(DMI_PRODUCT_VERSION, "0100"), 26239 DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
26253 }, 26240 },
26254 }, 26241 },
@@ -26257,7 +26244,7 @@ index ed7ad74..902f63f 100644
26257 }; 26244 };
26258 26245
26259 static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = { 26246 static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = {
26260@@ -487,7 +487,7 @@ static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = { 26247@@ -494,7 +494,7 @@ static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = {
26261 DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 1720"), 26248 DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 1720"),
26262 }, 26249 },
26263 }, 26250 },
@@ -26266,7 +26253,7 @@ index ed7ad74..902f63f 100644
26266 }; 26253 };
26267 26254
26268 #ifdef CONFIG_PNP 26255 #ifdef CONFIG_PNP
26269@@ -506,7 +506,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = { 26256@@ -513,7 +513,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = {
26270 DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), 26257 DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
26271 }, 26258 },
26272 }, 26259 },
@@ -26275,7 +26262,7 @@ index ed7ad74..902f63f 100644
26275 }; 26262 };
26276 26263
26277 static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = { 26264 static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = {
26278@@ -530,7 +530,7 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = { 26265@@ -537,7 +537,7 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = {
26279 DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */ 26266 DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */
26280 }, 26267 },
26281 }, 26268 },
@@ -26284,7 +26271,7 @@ index ed7ad74..902f63f 100644
26284 }; 26271 };
26285 #endif 26272 #endif
26286 26273
26287@@ -604,7 +604,7 @@ static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = { 26274@@ -611,7 +611,7 @@ static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = {
26288 DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4280"), 26275 DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4280"),
26289 }, 26276 },
26290 }, 26277 },
@@ -26580,7 +26567,7 @@ index 9924ea2..498330c 100644
26580 "start=%llu, len=%llu, dev_size=%llu", 26567 "start=%llu, len=%llu, dev_size=%llu",
26581 dm_device_name(ti->table->md), bdevname(bdev, b), 26568 dm_device_name(ti->table->md), bdevname(bdev, b),
26582diff --git a/drivers/md/md.c b/drivers/md/md.c 26569diff --git a/drivers/md/md.c b/drivers/md/md.c
26583index 7476d95..1dc7c2f 100644 26570index 7de96c2..d26e244 100644
26584--- a/drivers/md/md.c 26571--- a/drivers/md/md.c
26585+++ b/drivers/md/md.c 26572+++ b/drivers/md/md.c
26586@@ -6352,7 +6352,7 @@ static int md_seq_show(struct seq_file *seq, void *v) 26573@@ -6352,7 +6352,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
@@ -27955,7 +27942,7 @@ index f4adba2..f151c41 100644
27955 char *buf) 27942 char *buf)
27956 { 27943 {
27957diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c 27944diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
27958index 449e890..4b93125 100644 27945index 64ac30b..9a295d5 100644
27959--- a/drivers/pci/proc.c 27946--- a/drivers/pci/proc.c
27960+++ b/drivers/pci/proc.c 27947+++ b/drivers/pci/proc.c
27961@@ -481,7 +481,16 @@ static const struct file_operations proc_bus_pci_dev_operations = { 27948@@ -481,7 +481,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
@@ -28821,7 +28808,7 @@ index 6eda928..7e60f0e 100644
28821 .read = seq_read, 28808 .read = seq_read,
28822 .llseek = seq_lseek, 28809 .llseek = seq_lseek,
28823diff --git a/drivers/staging/samsung-laptop/samsung-laptop.c b/drivers/staging/samsung-laptop/samsung-laptop.c 28810diff --git a/drivers/staging/samsung-laptop/samsung-laptop.c b/drivers/staging/samsung-laptop/samsung-laptop.c
28824index eb44b60..80eeec6 100644 28811index ac2bf11..701e8d5 100644
28825--- a/drivers/staging/samsung-laptop/samsung-laptop.c 28812--- a/drivers/staging/samsung-laptop/samsung-laptop.c
28826+++ b/drivers/staging/samsung-laptop/samsung-laptop.c 28813+++ b/drivers/staging/samsung-laptop/samsung-laptop.c
28827@@ -269,7 +269,7 @@ static int update_status(struct backlight_device *bd) 28814@@ -269,7 +269,7 @@ static int update_status(struct backlight_device *bd)
@@ -30765,10 +30752,10 @@ index 42b60b0..57f6a31 100644
30765 int err = simple_fill_super(sb, 0x42494e4d, bm_files); 30752 int err = simple_fill_super(sb, 0x42494e4d, bm_files);
30766 if (!err) 30753 if (!err)
30767diff --git a/fs/bio.c b/fs/bio.c 30754diff --git a/fs/bio.c b/fs/bio.c
30768index e7bf6ca..985bf52 100644 30755index b3e0174..bfb5a81 100644
30769--- a/fs/bio.c 30756--- a/fs/bio.c
30770+++ b/fs/bio.c 30757+++ b/fs/bio.c
30771@@ -1213,7 +1213,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err) 30758@@ -1232,7 +1232,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err)
30772 const int read = bio_data_dir(bio) == READ; 30759 const int read = bio_data_dir(bio) == READ;
30773 struct bio_map_data *bmd = bio->bi_private; 30760 struct bio_map_data *bmd = bio->bi_private;
30774 int i; 30761 int i;
@@ -31083,7 +31070,7 @@ index 473ca80..609ff0f 100644
31083 kfree(p); 31070 kfree(p);
31084 } 31071 }
31085diff --git a/fs/compat.c b/fs/compat.c 31072diff --git a/fs/compat.c b/fs/compat.c
31086index af7c230..506b80e 100644 31073index 34bf9fc..9969114 100644
31087--- a/fs/compat.c 31074--- a/fs/compat.c
31088+++ b/fs/compat.c 31075+++ b/fs/compat.c
31089@@ -590,7 +590,7 @@ ssize_t compat_rw_copy_check_uvector(int type, 31076@@ -590,7 +590,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
@@ -31095,22 +31082,7 @@ index af7c230..506b80e 100644
31095 goto out; 31082 goto out;
31096 if (nr_segs > fast_segs) { 31083 if (nr_segs > fast_segs) {
31097 ret = -ENOMEM; 31084 ret = -ENOMEM;
31098@@ -1433,14 +1433,12 @@ static int compat_copy_strings(int argc, compat_uptr_t __user *argv, 31085@@ -1486,6 +1486,11 @@ int compat_do_execve(char * filename,
31099 if (!kmapped_page || kpos != (pos & PAGE_MASK)) {
31100 struct page *page;
31101
31102-#ifdef CONFIG_STACK_GROWSUP
31103 ret = expand_stack_downwards(bprm->vma, pos);
31104 if (ret < 0) {
31105 /* We've exceed the stack rlimit. */
31106 ret = -E2BIG;
31107 goto out;
31108 }
31109-#endif
31110 ret = get_user_pages(current, bprm->mm, pos,
31111 1, 1, 1, &page, NULL);
31112 if (ret <= 0) {
31113@@ -1486,6 +1484,11 @@ int compat_do_execve(char * filename,
31114 compat_uptr_t __user *envp, 31086 compat_uptr_t __user *envp,
31115 struct pt_regs * regs) 31087 struct pt_regs * regs)
31116 { 31088 {
@@ -31122,7 +31094,7 @@ index af7c230..506b80e 100644
31122 struct linux_binprm *bprm; 31094 struct linux_binprm *bprm;
31123 struct file *file; 31095 struct file *file;
31124 struct files_struct *displaced; 31096 struct files_struct *displaced;
31125@@ -1522,6 +1525,14 @@ int compat_do_execve(char * filename, 31097@@ -1522,6 +1527,14 @@ int compat_do_execve(char * filename,
31126 bprm->filename = filename; 31098 bprm->filename = filename;
31127 bprm->interp = filename; 31099 bprm->interp = filename;
31128 31100
@@ -31137,7 +31109,7 @@ index af7c230..506b80e 100644
31137 retval = bprm_mm_init(bprm); 31109 retval = bprm_mm_init(bprm);
31138 if (retval) 31110 if (retval)
31139 goto out_file; 31111 goto out_file;
31140@@ -1551,9 +1562,40 @@ int compat_do_execve(char * filename, 31112@@ -1551,9 +1564,40 @@ int compat_do_execve(char * filename,
31141 if (retval < 0) 31113 if (retval < 0)
31142 goto out; 31114 goto out;
31143 31115
@@ -31179,7 +31151,7 @@ index af7c230..506b80e 100644
31179 31151
31180 /* execve succeeded */ 31152 /* execve succeeded */
31181 current->fs->in_exec = 0; 31153 current->fs->in_exec = 0;
31182@@ -1564,6 +1606,14 @@ int compat_do_execve(char * filename, 31154@@ -1564,6 +1608,14 @@ int compat_do_execve(char * filename,
31183 put_files_struct(displaced); 31155 put_files_struct(displaced);
31184 return retval; 31156 return retval;
31185 31157
@@ -31192,8 +31164,8 @@ index af7c230..506b80e 100644
31192+#endif 31164+#endif
31193+ 31165+
31194 out: 31166 out:
31195 if (bprm->mm) 31167 if (bprm->mm) {
31196 mmput(bprm->mm); 31168 acct_arg_size(bprm, 0);
31197diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c 31169diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
31198index 112e45a..b59845b 100644 31170index 112e45a..b59845b 100644
31199--- a/fs/compat_binfmt_elf.c 31171--- a/fs/compat_binfmt_elf.c
@@ -31252,10 +31224,10 @@ index f994a7d..4dca551 100644
31252 }; 31224 };
31253 31225
31254diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c 31226diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
31255index 8cd617b..726d087 100644 31227index db9feb5..c50e2b9 100644
31256--- a/fs/ecryptfs/inode.c 31228--- a/fs/ecryptfs/inode.c
31257+++ b/fs/ecryptfs/inode.c 31229+++ b/fs/ecryptfs/inode.c
31258@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf, 31230@@ -663,7 +663,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
31259 old_fs = get_fs(); 31231 old_fs = get_fs();
31260 set_fs(get_ds()); 31232 set_fs(get_ds());
31261 rc = lower_dentry->d_inode->i_op->readlink(lower_dentry, 31233 rc = lower_dentry->d_inode->i_op->readlink(lower_dentry,
@@ -31264,7 +31236,7 @@ index 8cd617b..726d087 100644
31264 lower_bufsiz); 31236 lower_bufsiz);
31265 set_fs(old_fs); 31237 set_fs(old_fs);
31266 if (rc < 0) 31238 if (rc < 0)
31267@@ -704,7 +704,7 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd) 31239@@ -709,7 +709,7 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)
31268 } 31240 }
31269 old_fs = get_fs(); 31241 old_fs = get_fs();
31270 set_fs(get_ds()); 31242 set_fs(get_ds());
@@ -31273,7 +31245,7 @@ index 8cd617b..726d087 100644
31273 set_fs(old_fs); 31245 set_fs(old_fs);
31274 if (rc < 0) { 31246 if (rc < 0) {
31275 kfree(buf); 31247 kfree(buf);
31276@@ -719,7 +719,7 @@ out: 31248@@ -724,7 +724,7 @@ out:
31277 static void 31249 static void
31278 ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr) 31250 ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr)
31279 { 31251 {
@@ -31296,7 +31268,7 @@ index 3745f61..b680a98 100644
31296 i += packet_length_size; 31268 i += packet_length_size;
31297 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size)) 31269 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
31298diff --git a/fs/exec.c b/fs/exec.c 31270diff --git a/fs/exec.c b/fs/exec.c
31299index 956bd37..b27c155 100644 31271index dd8cabd..b2adde2 100644
31300--- a/fs/exec.c 31272--- a/fs/exec.c
31301+++ b/fs/exec.c 31273+++ b/fs/exec.c
31302@@ -55,12 +55,24 @@ 31274@@ -55,12 +55,24 @@
@@ -31333,7 +31305,7 @@ index 956bd37..b27c155 100644
31333 MAY_READ | MAY_EXEC | MAY_OPEN); 31305 MAY_READ | MAY_EXEC | MAY_OPEN);
31334 putname(tmp); 31306 putname(tmp);
31335 error = PTR_ERR(file); 31307 error = PTR_ERR(file);
31336@@ -162,18 +174,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, 31308@@ -177,18 +189,10 @@ struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
31337 int write) 31309 int write)
31338 { 31310 {
31339 struct page *page; 31311 struct page *page;
@@ -31355,7 +31327,7 @@ index 956bd37..b27c155 100644
31355 return NULL; 31327 return NULL;
31356 31328
31357 if (write) { 31329 if (write) {
31358@@ -246,6 +250,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm) 31330@@ -263,6 +267,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
31359 vma->vm_end = STACK_TOP_MAX; 31331 vma->vm_end = STACK_TOP_MAX;
31360 vma->vm_start = vma->vm_end - PAGE_SIZE; 31332 vma->vm_start = vma->vm_end - PAGE_SIZE;
31361 vma->vm_flags = VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP; 31333 vma->vm_flags = VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
@@ -31367,7 +31339,7 @@ index 956bd37..b27c155 100644
31367 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 31339 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
31368 INIT_LIST_HEAD(&vma->anon_vma_chain); 31340 INIT_LIST_HEAD(&vma->anon_vma_chain);
31369 err = insert_vm_struct(mm, vma); 31341 err = insert_vm_struct(mm, vma);
31370@@ -255,6 +264,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm) 31342@@ -272,6 +281,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
31371 mm->stack_vm = mm->total_vm = 1; 31343 mm->stack_vm = mm->total_vm = 1;
31372 up_write(&mm->mmap_sem); 31344 up_write(&mm->mmap_sem);
31373 bprm->p = vma->vm_end - sizeof(void *); 31345 bprm->p = vma->vm_end - sizeof(void *);
@@ -31380,7 +31352,7 @@ index 956bd37..b27c155 100644
31380 return 0; 31352 return 0;
31381 err: 31353 err:
31382 up_write(&mm->mmap_sem); 31354 up_write(&mm->mmap_sem);
31383@@ -485,7 +500,7 @@ int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm) 31355@@ -506,7 +521,7 @@ int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm)
31384 int r; 31356 int r;
31385 mm_segment_t oldfs = get_fs(); 31357 mm_segment_t oldfs = get_fs();
31386 set_fs(KERNEL_DS); 31358 set_fs(KERNEL_DS);
@@ -31389,7 +31361,7 @@ index 956bd37..b27c155 100644
31389 set_fs(oldfs); 31361 set_fs(oldfs);
31390 return r; 31362 return r;
31391 } 31363 }
31392@@ -515,7 +530,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) 31364@@ -536,7 +551,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
31393 unsigned long new_end = old_end - shift; 31365 unsigned long new_end = old_end - shift;
31394 struct mmu_gather *tlb; 31366 struct mmu_gather *tlb;
31395 31367
@@ -31399,7 +31371,7 @@ index 956bd37..b27c155 100644
31399 31371
31400 /* 31372 /*
31401 * ensure there are no vmas between where we want to go 31373 * ensure there are no vmas between where we want to go
31402@@ -524,6 +540,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) 31374@@ -545,6 +561,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
31403 if (vma != find_vma(mm, new_start)) 31375 if (vma != find_vma(mm, new_start))
31404 return -EFAULT; 31376 return -EFAULT;
31405 31377
@@ -31410,7 +31382,7 @@ index 956bd37..b27c155 100644
31410 /* 31382 /*
31411 * cover the whole range: [new_start, old_end) 31383 * cover the whole range: [new_start, old_end)
31412 */ 31384 */
31413@@ -619,8 +639,28 @@ int setup_arg_pages(struct linux_binprm *bprm, 31385@@ -640,8 +660,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
31414 bprm->exec -= stack_shift; 31386 bprm->exec -= stack_shift;
31415 31387
31416 down_write(&mm->mmap_sem); 31388 down_write(&mm->mmap_sem);
@@ -31439,7 +31411,7 @@ index 956bd37..b27c155 100644
31439 /* 31411 /*
31440 * Adjust stack execute permissions; explicitly enable for 31412 * Adjust stack execute permissions; explicitly enable for
31441 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone 31413 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
31442@@ -639,13 +679,6 @@ int setup_arg_pages(struct linux_binprm *bprm, 31414@@ -660,13 +700,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
31443 goto out_unlock; 31415 goto out_unlock;
31444 BUG_ON(prev != vma); 31416 BUG_ON(prev != vma);
31445 31417
@@ -31453,7 +31425,7 @@ index 956bd37..b27c155 100644
31453 /* mprotect_fixup is overkill to remove the temporary stack flags */ 31425 /* mprotect_fixup is overkill to remove the temporary stack flags */
31454 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP; 31426 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
31455 31427
31456@@ -685,7 +718,7 @@ struct file *open_exec(const char *name) 31428@@ -706,7 +739,7 @@ struct file *open_exec(const char *name)
31457 int err; 31429 int err;
31458 31430
31459 file = do_filp_open(AT_FDCWD, name, 31431 file = do_filp_open(AT_FDCWD, name,
@@ -31462,7 +31434,7 @@ index 956bd37..b27c155 100644
31462 MAY_EXEC | MAY_OPEN); 31434 MAY_EXEC | MAY_OPEN);
31463 if (IS_ERR(file)) 31435 if (IS_ERR(file))
31464 goto out; 31436 goto out;
31465@@ -722,7 +755,7 @@ int kernel_read(struct file *file, loff_t offset, 31437@@ -743,7 +776,7 @@ int kernel_read(struct file *file, loff_t offset,
31466 old_fs = get_fs(); 31438 old_fs = get_fs();
31467 set_fs(get_ds()); 31439 set_fs(get_ds());
31468 /* The cast to a user pointer is valid due to the set_fs() */ 31440 /* The cast to a user pointer is valid due to the set_fs() */
@@ -31471,7 +31443,7 @@ index 956bd37..b27c155 100644
31471 set_fs(old_fs); 31443 set_fs(old_fs);
31472 return result; 31444 return result;
31473 } 31445 }
31474@@ -1139,7 +1172,7 @@ int check_unsafe_exec(struct linux_binprm *bprm) 31446@@ -1161,7 +1194,7 @@ int check_unsafe_exec(struct linux_binprm *bprm)
31475 } 31447 }
31476 rcu_read_unlock(); 31448 rcu_read_unlock();
31477 31449
@@ -31480,7 +31452,7 @@ index 956bd37..b27c155 100644
31480 bprm->unsafe |= LSM_UNSAFE_SHARE; 31452 bprm->unsafe |= LSM_UNSAFE_SHARE;
31481 } else { 31453 } else {
31482 res = -EAGAIN; 31454 res = -EAGAIN;
31483@@ -1335,6 +1368,11 @@ int do_execve(char * filename, 31455@@ -1357,6 +1390,11 @@ int do_execve(char * filename,
31484 char __user *__user *envp, 31456 char __user *__user *envp,
31485 struct pt_regs * regs) 31457 struct pt_regs * regs)
31486 { 31458 {
@@ -31492,7 +31464,7 @@ index 956bd37..b27c155 100644
31492 struct linux_binprm *bprm; 31464 struct linux_binprm *bprm;
31493 struct file *file; 31465 struct file *file;
31494 struct files_struct *displaced; 31466 struct files_struct *displaced;
31495@@ -1371,6 +1409,18 @@ int do_execve(char * filename, 31467@@ -1393,6 +1431,18 @@ int do_execve(char * filename,
31496 bprm->filename = filename; 31468 bprm->filename = filename;
31497 bprm->interp = filename; 31469 bprm->interp = filename;
31498 31470
@@ -31511,7 +31483,7 @@ index 956bd37..b27c155 100644
31511 retval = bprm_mm_init(bprm); 31483 retval = bprm_mm_init(bprm);
31512 if (retval) 31484 if (retval)
31513 goto out_file; 31485 goto out_file;
31514@@ -1400,10 +1450,41 @@ int do_execve(char * filename, 31486@@ -1422,10 +1472,41 @@ int do_execve(char * filename,
31515 if (retval < 0) 31487 if (retval < 0)
31516 goto out; 31488 goto out;
31517 31489
@@ -31554,7 +31526,7 @@ index 956bd37..b27c155 100644
31554 31526
31555 /* execve succeeded */ 31527 /* execve succeeded */
31556 current->fs->in_exec = 0; 31528 current->fs->in_exec = 0;
31557@@ -1414,6 +1495,14 @@ int do_execve(char * filename, 31529@@ -1436,6 +1517,14 @@ int do_execve(char * filename,
31558 put_files_struct(displaced); 31530 put_files_struct(displaced);
31559 return retval; 31531 return retval;
31560 31532
@@ -31567,9 +31539,9 @@ index 956bd37..b27c155 100644
31567+#endif 31539+#endif
31568+ 31540+
31569 out: 31541 out:
31570 if (bprm->mm) 31542 if (bprm->mm) {
31571 mmput (bprm->mm); 31543 acct_arg_size(bprm, 0);
31572@@ -1577,6 +1666,217 @@ out: 31544@@ -1601,6 +1690,217 @@ out:
31573 return ispipe; 31545 return ispipe;
31574 } 31546 }
31575 31547
@@ -31787,7 +31759,7 @@ index 956bd37..b27c155 100644
31787 static int zap_process(struct task_struct *start, int exit_code) 31759 static int zap_process(struct task_struct *start, int exit_code)
31788 { 31760 {
31789 struct task_struct *t; 31761 struct task_struct *t;
31790@@ -1787,17 +2087,17 @@ static void wait_for_dump_helpers(struct file *file) 31762@@ -1811,17 +2111,17 @@ static void wait_for_dump_helpers(struct file *file)
31791 pipe = file->f_path.dentry->d_inode->i_pipe; 31763 pipe = file->f_path.dentry->d_inode->i_pipe;
31792 31764
31793 pipe_lock(pipe); 31765 pipe_lock(pipe);
@@ -31810,7 +31782,7 @@ index 956bd37..b27c155 100644
31810 pipe_unlock(pipe); 31782 pipe_unlock(pipe);
31811 31783
31812 } 31784 }
31813@@ -1905,6 +2205,10 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs) 31785@@ -1929,6 +2229,10 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
31814 */ 31786 */
31815 clear_thread_flag(TIF_SIGPENDING); 31787 clear_thread_flag(TIF_SIGPENDING);
31816 31788
@@ -33024,7 +32996,7 @@ index 099b351..f4966db 100644
33024 32996
33025 void nfs_fattr_init(struct nfs_fattr *fattr) 32997 void nfs_fattr_init(struct nfs_fattr *fattr)
33026diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c 32998diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
33027index 330a3c9..250c8af 100644 32999index f7b7698..9ff1136 100644
33028--- a/fs/nfs/nfs4proc.c 33000--- a/fs/nfs/nfs4proc.c
33029+++ b/fs/nfs/nfs4proc.c 33001+++ b/fs/nfs/nfs4proc.c
33030@@ -1166,7 +1166,7 @@ static int _nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state 33002@@ -1166,7 +1166,7 @@ static int _nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state
@@ -33243,7 +33215,7 @@ index 330a3c9..250c8af 100644
33243 int err; 33215 int err;
33244 do { 33216 do {
33245 err = nfs4_handle_exception(NFS_SERVER(inode), 33217 err = nfs4_handle_exception(NFS_SERVER(inode),
33246@@ -3745,7 +3745,7 @@ out: 33218@@ -3742,7 +3742,7 @@ out:
33247 int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4_stateid *stateid, int issync) 33219 int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4_stateid *stateid, int issync)
33248 { 33220 {
33249 struct nfs_server *server = NFS_SERVER(inode); 33221 struct nfs_server *server = NFS_SERVER(inode);
@@ -33252,7 +33224,7 @@ index 330a3c9..250c8af 100644
33252 int err; 33224 int err;
33253 do { 33225 do {
33254 err = _nfs4_proc_delegreturn(inode, cred, stateid, issync); 33226 err = _nfs4_proc_delegreturn(inode, cred, stateid, issync);
33255@@ -3818,7 +3818,7 @@ out: 33227@@ -3815,7 +3815,7 @@ out:
33256 33228
33257 static int nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *request) 33229 static int nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *request)
33258 { 33230 {
@@ -33261,7 +33233,7 @@ index 330a3c9..250c8af 100644
33261 int err; 33233 int err;
33262 33234
33263 do { 33235 do {
33264@@ -4232,7 +4232,7 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f 33236@@ -4229,7 +4229,7 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f
33265 static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) 33237 static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request)
33266 { 33238 {
33267 struct nfs_server *server = NFS_SERVER(state->inode); 33239 struct nfs_server *server = NFS_SERVER(state->inode);
@@ -33270,7 +33242,7 @@ index 330a3c9..250c8af 100644
33270 int err; 33242 int err;
33271 33243
33272 do { 33244 do {
33273@@ -4250,7 +4250,7 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request 33245@@ -4247,7 +4247,7 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request
33274 static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) 33246 static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request)
33275 { 33247 {
33276 struct nfs_server *server = NFS_SERVER(state->inode); 33248 struct nfs_server *server = NFS_SERVER(state->inode);
@@ -33279,7 +33251,7 @@ index 330a3c9..250c8af 100644
33279 int err; 33251 int err;
33280 33252
33281 err = nfs4_set_lock_state(state, request); 33253 err = nfs4_set_lock_state(state, request);
33282@@ -4315,7 +4315,7 @@ out: 33254@@ -4312,7 +4312,7 @@ out:
33283 33255
33284 static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request) 33256 static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
33285 { 33257 {
@@ -33288,7 +33260,7 @@ index 330a3c9..250c8af 100644
33288 int err; 33260 int err;
33289 33261
33290 do { 33262 do {
33291@@ -4375,7 +4375,7 @@ nfs4_proc_lock(struct file *filp, int cmd, struct file_lock *request) 33263@@ -4372,7 +4372,7 @@ nfs4_proc_lock(struct file *filp, int cmd, struct file_lock *request)
33292 int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl) 33264 int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl)
33293 { 33265 {
33294 struct nfs_server *server = NFS_SERVER(state->inode); 33266 struct nfs_server *server = NFS_SERVER(state->inode);
@@ -33656,7 +33628,7 @@ index 5463266..fbbbe4c 100644
33656 if (user != (uid_t) -1) { 33628 if (user != (uid_t) -1) {
33657 newattrs.ia_valid |= ATTR_UID; 33629 newattrs.ia_valid |= ATTR_UID;
33658diff --git a/fs/pipe.c b/fs/pipe.c 33630diff --git a/fs/pipe.c b/fs/pipe.c
33659index 37eb1eb..119351f 100644 33631index a58d7ee..e17c9f2 100644
33660--- a/fs/pipe.c 33632--- a/fs/pipe.c
33661+++ b/fs/pipe.c 33633+++ b/fs/pipe.c
33662@@ -420,9 +420,9 @@ redo: 33634@@ -420,9 +420,9 @@ redo:
@@ -34948,7 +34920,7 @@ index 00b2909..2ace383 100644
34948 __putname(s); 34920 __putname(s);
34949 } 34921 }
34950diff --git a/fs/splice.c b/fs/splice.c 34922diff --git a/fs/splice.c b/fs/splice.c
34951index efdbfec..3eac071 100644 34923index 188f61a..c918341 100644
34952--- a/fs/splice.c 34924--- a/fs/splice.c
34953+++ b/fs/splice.c 34925+++ b/fs/splice.c
34954@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe, 34926@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
@@ -35021,7 +34993,7 @@ index efdbfec..3eac071 100644
35021 34993
35022 current->splice_pipe = pipe; 34994 current->splice_pipe = pipe;
35023 } 34995 }
35024@@ -1769,9 +1769,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags) 34996@@ -1757,9 +1757,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
35025 ret = -ERESTARTSYS; 34997 ret = -ERESTARTSYS;
35026 break; 34998 break;
35027 } 34999 }
@@ -35033,7 +35005,7 @@ index efdbfec..3eac071 100644
35033 if (flags & SPLICE_F_NONBLOCK) { 35005 if (flags & SPLICE_F_NONBLOCK) {
35034 ret = -EAGAIN; 35006 ret = -EAGAIN;
35035 break; 35007 break;
35036@@ -1803,7 +1803,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags) 35008@@ -1791,7 +1791,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
35037 pipe_lock(pipe); 35009 pipe_lock(pipe);
35038 35010
35039 while (pipe->nrbufs >= pipe->buffers) { 35011 while (pipe->nrbufs >= pipe->buffers) {
@@ -35042,7 +35014,7 @@ index efdbfec..3eac071 100644
35042 send_sig(SIGPIPE, current, 0); 35014 send_sig(SIGPIPE, current, 0);
35043 ret = -EPIPE; 35015 ret = -EPIPE;
35044 break; 35016 break;
35045@@ -1816,9 +1816,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags) 35017@@ -1804,9 +1804,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
35046 ret = -ERESTARTSYS; 35018 ret = -ERESTARTSYS;
35047 break; 35019 break;
35048 } 35020 }
@@ -35054,7 +35026,7 @@ index efdbfec..3eac071 100644
35054 } 35026 }
35055 35027
35056 pipe_unlock(pipe); 35028 pipe_unlock(pipe);
35057@@ -1854,14 +1854,14 @@ retry: 35029@@ -1842,14 +1842,14 @@ retry:
35058 pipe_double_lock(ipipe, opipe); 35030 pipe_double_lock(ipipe, opipe);
35059 35031
35060 do { 35032 do {
@@ -35071,7 +35043,7 @@ index efdbfec..3eac071 100644
35071 break; 35043 break;
35072 35044
35073 /* 35045 /*
35074@@ -1961,7 +1961,7 @@ static int link_pipe(struct pipe_inode_info *ipipe, 35046@@ -1949,7 +1949,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
35075 pipe_double_lock(ipipe, opipe); 35047 pipe_double_lock(ipipe, opipe);
35076 35048
35077 do { 35049 do {
@@ -35080,7 +35052,7 @@ index efdbfec..3eac071 100644
35080 send_sig(SIGPIPE, current, 0); 35052 send_sig(SIGPIPE, current, 0);
35081 if (!ret) 35053 if (!ret)
35082 ret = -EPIPE; 35054 ret = -EPIPE;
35083@@ -2006,7 +2006,7 @@ static int link_pipe(struct pipe_inode_info *ipipe, 35055@@ -1994,7 +1994,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
35084 * return EAGAIN if we have the potential of some data in the 35056 * return EAGAIN if we have the potential of some data in the
35085 * future, otherwise just return 0 35057 * future, otherwise just return 0
35086 */ 35058 */
@@ -45427,10 +45399,10 @@ index 817b237..62c10bc 100644
45427 #undef __HANDLE_ITEM 45399 #undef __HANDLE_ITEM
45428 }; 45400 };
45429diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h 45401diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
45430index c809e28..538e4bc 100644 45402index 074b620..c8823dc 100644
45431--- a/include/linux/binfmts.h 45403--- a/include/linux/binfmts.h
45432+++ b/include/linux/binfmts.h 45404+++ b/include/linux/binfmts.h
45433@@ -87,6 +87,7 @@ struct linux_binfmt { 45405@@ -92,6 +92,7 @@ struct linux_binfmt {
45434 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); 45406 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
45435 int (*load_shlib)(struct file *); 45407 int (*load_shlib)(struct file *);
45436 int (*core_dump)(struct coredump_params *cprm); 45408 int (*core_dump)(struct coredump_params *cprm);
@@ -45439,7 +45411,7 @@ index c809e28..538e4bc 100644
45439 int hasvdso; 45411 int hasvdso;
45440 }; 45412 };
45441diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h 45413diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
45442index 09a8402..1cc074d 100644 45414index 7b35803..e46aa64 100644
45443--- a/include/linux/blkdev.h 45415--- a/include/linux/blkdev.h
45444+++ b/include/linux/blkdev.h 45416+++ b/include/linux/blkdev.h
45445@@ -1331,20 +1331,20 @@ static inline int blk_integrity_rq(struct request *rq) 45417@@ -1331,20 +1331,20 @@ static inline int blk_integrity_rq(struct request *rq)
@@ -47531,7 +47503,7 @@ index 5171639..7cf4235 100644
47531 /** create a directory */ 47503 /** create a directory */
47532 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, 47504 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
47533diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h 47505diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
47534index 4457969..9013f4e 100644 47506index bb27d7e..829e8c5 100644
47535--- a/include/linux/pipe_fs_i.h 47507--- a/include/linux/pipe_fs_i.h
47536+++ b/include/linux/pipe_fs_i.h 47508+++ b/include/linux/pipe_fs_i.h
47537@@ -45,9 +45,9 @@ struct pipe_buffer { 47509@@ -45,9 +45,9 @@ struct pipe_buffer {
@@ -49176,60 +49148,6 @@ index f4c1a3a..8dcf3cc 100644
49176 if (err < 0) 49148 if (err < 0)
49177 goto out; 49149 goto out;
49178 49150
49179diff --git a/ipc/compat.c b/ipc/compat.c
49180index 9dc2c7d..845a287 100644
49181--- a/ipc/compat.c
49182+++ b/ipc/compat.c
49183@@ -241,6 +241,8 @@ long compat_sys_semctl(int first, int second, int third, void __user *uptr)
49184 struct semid64_ds __user *up64;
49185 int version = compat_ipc_parse_version(&third);
49186
49187+ memset(&s64, 0, sizeof(s64));
49188+
49189 if (!uptr)
49190 return -EINVAL;
49191 if (get_user(pad, (u32 __user *) uptr))
49192@@ -421,6 +423,8 @@ long compat_sys_msgctl(int first, int second, void __user *uptr)
49193 int version = compat_ipc_parse_version(&second);
49194 void __user *p;
49195
49196+ memset(&m64, 0, sizeof(m64));
49197+
49198 switch (second & (~IPC_64)) {
49199 case IPC_INFO:
49200 case IPC_RMID:
49201@@ -594,6 +598,8 @@ long compat_sys_shmctl(int first, int second, void __user *uptr)
49202 int err, err2;
49203 int version = compat_ipc_parse_version(&second);
49204
49205+ memset(&s64, 0, sizeof(s64));
49206+
49207 switch (second & (~IPC_64)) {
49208 case IPC_RMID:
49209 case SHM_LOCK:
49210diff --git a/ipc/compat_mq.c b/ipc/compat_mq.c
49211index d8d1e9f..380ea4f 100644
49212--- a/ipc/compat_mq.c
49213+++ b/ipc/compat_mq.c
49214@@ -53,6 +53,9 @@ asmlinkage long compat_sys_mq_open(const char __user *u_name,
49215 void __user *p = NULL;
49216 if (u_attr && oflag & O_CREAT) {
49217 struct mq_attr attr;
49218+
49219+ memset(&attr, 0, sizeof(attr));
49220+
49221 p = compat_alloc_user_space(sizeof(attr));
49222 if (get_compat_mq_attr(&attr, u_attr) ||
49223 copy_to_user(p, &attr, sizeof(attr)))
49224@@ -127,6 +130,8 @@ asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes,
49225 struct mq_attr __user *p = compat_alloc_user_space(2 * sizeof(*p));
49226 long ret;
49227
49228+ memset(&mqstat, 0, sizeof(mqstat));
49229+
49230 if (u_mqstat) {
49231 if (get_compat_mq_attr(&mqstat, u_mqstat) ||
49232 copy_to_user(p, &mqstat, sizeof(mqstat)))
49233diff --git a/ipc/mqueue.c b/ipc/mqueue.c 49151diff --git a/ipc/mqueue.c b/ipc/mqueue.c
49234index c93fd3f..1e684a5 100644 49152index c93fd3f..1e684a5 100644
49235--- a/ipc/mqueue.c 49153--- a/ipc/mqueue.c
@@ -49256,7 +49174,7 @@ index 40a8f46..0e0d49b 100644
49256 49174
49257 out.sem_otime = in->sem_otime; 49175 out.sem_otime = in->sem_otime;
49258diff --git a/ipc/shm.c b/ipc/shm.c 49176diff --git a/ipc/shm.c b/ipc/shm.c
49259index 52ed77e..bd734e4 100644 49177index b427380..3516324 100644
49260--- a/ipc/shm.c 49178--- a/ipc/shm.c
49261+++ b/ipc/shm.c 49179+++ b/ipc/shm.c
49262@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp); 49180@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp);
@@ -49289,16 +49207,7 @@ index 52ed77e..bd734e4 100644
49289 shp->shm_segsz = size; 49207 shp->shm_segsz = size;
49290 shp->shm_nattch = 0; 49208 shp->shm_nattch = 0;
49291 shp->shm_file = file; 49209 shp->shm_file = file;
49292@@ -473,6 +489,8 @@ static inline unsigned long copy_shmid_to_user(void __user *buf, struct shmid64_ 49210@@ -878,9 +894,21 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
49293 {
49294 struct shmid_ds out;
49295
49296+ memset(&out, 0, sizeof(out));
49297+
49298 ipc64_perm_to_ipc_perm(&in->shm_perm, &out.shm_perm);
49299 out.shm_segsz = in->shm_segsz;
49300 out.shm_atime = in->shm_atime;
49301@@ -877,9 +895,21 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
49302 if (err) 49211 if (err)
49303 goto out_unlock; 49212 goto out_unlock;
49304 49213
@@ -49473,7 +49382,7 @@ index ebe4a28..19a35f3 100644
49473 #ifdef CONFIG_MODULE_UNLOAD 49382 #ifdef CONFIG_MODULE_UNLOAD
49474 { 49383 {
49475diff --git a/kernel/exit.c b/kernel/exit.c 49384diff --git a/kernel/exit.c b/kernel/exit.c
49476index ac90425..bfa06b8 100644 49385index d1e6789..db62916 100644
49477--- a/kernel/exit.c 49386--- a/kernel/exit.c
49478+++ b/kernel/exit.c 49387+++ b/kernel/exit.c
49479@@ -56,6 +56,10 @@ 49388@@ -56,6 +56,10 @@
@@ -49546,7 +49455,7 @@ index ac90425..bfa06b8 100644
49546 /* 49455 /*
49547 * If we were started as result of loading a module, close all of the 49456 * If we were started as result of loading a module, close all of the
49548 * user space pages. We don't need them, and if we didn't close them 49457 * user space pages. We don't need them, and if we didn't close them
49549@@ -960,6 +988,9 @@ NORET_TYPE void do_exit(long code) 49458@@ -969,6 +997,9 @@ NORET_TYPE void do_exit(long code)
49550 tsk->exit_code = code; 49459 tsk->exit_code = code;
49551 taskstats_exit(tsk, group_dead); 49460 taskstats_exit(tsk, group_dead);
49552 49461
@@ -50813,7 +50722,7 @@ index 9829646..47f2b35 100644
50813 /* 50722 /*
50814 * At the hard limit, we just die. 50723 * At the hard limit, we just die.
50815diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c 50724diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
50816index aa9e916..6d80d38 100644 50725index 684463e..21353fb 100644
50817--- a/kernel/power/hibernate.c 50726--- a/kernel/power/hibernate.c
50818+++ b/kernel/power/hibernate.c 50727+++ b/kernel/power/hibernate.c
50819@@ -50,14 +50,14 @@ enum { 50728@@ -50,14 +50,14 @@ enum {
@@ -50887,7 +50796,7 @@ index 71ae290..3ab7c83 100644
50887 50796
50888 /* 50797 /*
50889diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c 50798diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
50890index f37cb7d..01a2097 100644 50799index b0f28dd..d380af8 100644
50891--- a/kernel/power/suspend.c 50800--- a/kernel/power/suspend.c
50892+++ b/kernel/power/suspend.c 50801+++ b/kernel/power/suspend.c
50893@@ -30,13 +30,13 @@ const char *const pm_states[PM_SUSPEND_MAX] = { 50802@@ -30,13 +30,13 @@ const char *const pm_states[PM_SUSPEND_MAX] = {
@@ -51066,7 +50975,7 @@ index a960481..d373438 100644
51066 WARN_ON(pendowner->pi_blocked_on->lock != lock); 50975 WARN_ON(pendowner->pi_blocked_on->lock != lock);
51067 50976
51068diff --git a/kernel/sched.c b/kernel/sched.c 50977diff --git a/kernel/sched.c b/kernel/sched.c
51069index 05b40f8..b62e96c 100644 50978index 837f480..b9c779e 100644
51070--- a/kernel/sched.c 50979--- a/kernel/sched.c
51071+++ b/kernel/sched.c 50980+++ b/kernel/sched.c
51072@@ -4259,6 +4259,8 @@ int can_nice(const struct task_struct *p, const int nice) 50981@@ -4259,6 +4259,8 @@ int can_nice(const struct task_struct *p, const int nice)
@@ -51096,7 +51005,7 @@ index 05b40f8..b62e96c 100644
51096 /* can't set/change the rt policy */ 51005 /* can't set/change the rt policy */
51097 if (policy != p->policy && !rlim_rtprio) 51006 if (policy != p->policy && !rlim_rtprio)
51098 return -EPERM; 51007 return -EPERM;
51099@@ -6581,7 +6585,7 @@ static void init_sched_groups_power(int cpu, struct sched_domain *sd) 51008@@ -6593,7 +6597,7 @@ static void init_sched_groups_power(int cpu, struct sched_domain *sd)
51100 long power; 51009 long power;
51101 int weight; 51010 int weight;
51102 51011
@@ -51909,7 +51818,7 @@ index fb34977..f5db621 100644
51909 return -ENOMEM; 51818 return -ENOMEM;
51910 memcpy(buf, s->from, s->to - s->from); 51819 memcpy(buf, s->from, s->to - s->from);
51911diff --git a/lib/radix-tree.c b/lib/radix-tree.c 51820diff --git a/lib/radix-tree.c b/lib/radix-tree.c
51912index 05da38b..e0358eb 100644 51821index 5f0ed4b..d0d657d 100644
51913--- a/lib/radix-tree.c 51822--- a/lib/radix-tree.c
51914+++ b/lib/radix-tree.c 51823+++ b/lib/radix-tree.c
51915@@ -80,7 +80,7 @@ struct radix_tree_preload { 51824@@ -80,7 +80,7 @@ struct radix_tree_preload {
@@ -51919,7 +51828,7 @@ index 05da38b..e0358eb 100644
51919-static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, }; 51828-static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
51920+static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads); 51829+static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads);
51921 51830
51922 static inline gfp_t root_gfp_mask(struct radix_tree_root *root) 51831 static inline void *ptr_to_indirect(void *ptr)
51923 { 51832 {
51924diff --git a/lib/vsprintf.c b/lib/vsprintf.c 51833diff --git a/lib/vsprintf.c b/lib/vsprintf.c
51925index b8a2f54..a383ff5 100644 51834index b8a2f54..a383ff5 100644
@@ -51992,10 +51901,10 @@ index 142c84a..59d8f7c 100644
51992 return count; 51901 return count;
51993 } 51902 }
51994diff --git a/mm/filemap.c b/mm/filemap.c 51903diff --git a/mm/filemap.c b/mm/filemap.c
51995index 20e5642..daadba4 100644 51904index 183d2d4..d5c67db 100644
51996--- a/mm/filemap.c 51905--- a/mm/filemap.c
51997+++ b/mm/filemap.c 51906+++ b/mm/filemap.c
51998@@ -1640,7 +1640,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma) 51907@@ -1637,7 +1637,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
51999 struct address_space *mapping = file->f_mapping; 51908 struct address_space *mapping = file->f_mapping;
52000 51909
52001 if (!mapping->a_ops->readpage) 51910 if (!mapping->a_ops->readpage)
@@ -52004,7 +51913,7 @@ index 20e5642..daadba4 100644
52004 file_accessed(file); 51913 file_accessed(file);
52005 vma->vm_ops = &generic_file_vm_ops; 51914 vma->vm_ops = &generic_file_vm_ops;
52006 vma->vm_flags |= VM_CAN_NONLINEAR; 51915 vma->vm_flags |= VM_CAN_NONLINEAR;
52007@@ -2036,6 +2036,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i 51916@@ -2033,6 +2033,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i
52008 *pos = i_size_read(inode); 51917 *pos = i_size_read(inode);
52009 51918
52010 if (limit != RLIM_INFINITY) { 51919 if (limit != RLIM_INFINITY) {
@@ -52872,7 +52781,7 @@ index 7550758..3f21de3 100644
52872 * Make sure the vDSO gets into every core dump. 52781 * Make sure the vDSO gets into every core dump.
52873 * Dumping its contents makes post-mortem fully interpretable later 52782 * Dumping its contents makes post-mortem fully interpretable later
52874diff --git a/mm/mempolicy.c b/mm/mempolicy.c 52783diff --git a/mm/mempolicy.c b/mm/mempolicy.c
52875index 5bc0a96..cb70aac 100644 52784index 407cda2..a40f5d1 100644
52876--- a/mm/mempolicy.c 52785--- a/mm/mempolicy.c
52877+++ b/mm/mempolicy.c 52786+++ b/mm/mempolicy.c
52878@@ -642,6 +642,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, 52787@@ -642,6 +642,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
@@ -54325,7 +54234,7 @@ index 3a94362..b34ead4 100644
54325 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 54234 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
54326 54235
54327diff --git a/mm/mprotect.c b/mm/mprotect.c 54236diff --git a/mm/mprotect.c b/mm/mprotect.c
54328index 2d1bf7c..13d159a 100644 54237index 4c51338..90cc8c4 100644
54329--- a/mm/mprotect.c 54238--- a/mm/mprotect.c
54330+++ b/mm/mprotect.c 54239+++ b/mm/mprotect.c
54331@@ -23,10 +23,16 @@ 54240@@ -23,10 +23,16 @@
@@ -54490,7 +54399,7 @@ index 2d1bf7c..13d159a 100644
54490 54399
54491 if (vma_wants_writenotify(vma)) { 54400 if (vma_wants_writenotify(vma)) {
54492 vma->vm_page_prot = vm_get_page_prot(newflags & ~VM_SHARED); 54401 vma->vm_page_prot = vm_get_page_prot(newflags & ~VM_SHARED);
54493@@ -237,6 +351,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, 54402@@ -238,6 +352,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
54494 end = start + len; 54403 end = start + len;
54495 if (end <= start) 54404 if (end <= start)
54496 return -ENOMEM; 54405 return -ENOMEM;
@@ -54508,7 +54417,7 @@ index 2d1bf7c..13d159a 100644
54508 if (!arch_validate_prot(prot)) 54417 if (!arch_validate_prot(prot))
54509 return -EINVAL; 54418 return -EINVAL;
54510 54419
54511@@ -244,7 +369,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, 54420@@ -245,7 +370,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
54512 /* 54421 /*
54513 * Does the application expect PROT_READ to imply PROT_EXEC: 54422 * Does the application expect PROT_READ to imply PROT_EXEC:
54514 */ 54423 */
@@ -54517,7 +54426,7 @@ index 2d1bf7c..13d159a 100644
54517 prot |= PROT_EXEC; 54426 prot |= PROT_EXEC;
54518 54427
54519 vm_flags = calc_vm_prot_bits(prot); 54428 vm_flags = calc_vm_prot_bits(prot);
54520@@ -276,6 +401,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, 54429@@ -277,6 +402,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
54521 if (start > vma->vm_start) 54430 if (start > vma->vm_start)
54522 prev = vma; 54431 prev = vma;
54523 54432
@@ -54529,7 +54438,7 @@ index 2d1bf7c..13d159a 100644
54529 for (nstart = start ; ; ) { 54438 for (nstart = start ; ; ) {
54530 unsigned long newflags; 54439 unsigned long newflags;
54531 54440
54532@@ -285,6 +415,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, 54441@@ -286,6 +416,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
54533 54442
54534 /* newflags >> 4 shift VM_MAY% in place of VM_% */ 54443 /* newflags >> 4 shift VM_MAY% in place of VM_% */
54535 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) { 54444 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
@@ -54545,9 +54454,9 @@ index 2d1bf7c..13d159a 100644
54545 goto out; 54454 goto out;
54546 } 54455 }
54547@@ -300,6 +438,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, 54456@@ -300,6 +438,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
54457 error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
54548 if (error) 54458 if (error)
54549 goto out; 54459 goto out;
54550 perf_event_mmap(vma);
54551+ 54460+
54552+ track_exec_limit(current->mm, nstart, tmp, vm_flags); 54461+ track_exec_limit(current->mm, nstart, tmp, vm_flags);
54553+ 54462+
@@ -54663,7 +54572,7 @@ index cde56ee..a090e6d 100644
54663 out: 54572 out:
54664 if (ret & ~PAGE_MASK) 54573 if (ret & ~PAGE_MASK)
54665diff --git a/mm/nommu.c b/mm/nommu.c 54574diff --git a/mm/nommu.c b/mm/nommu.c
54666index e48b38c..eca83ab 100644 54575index 3e18548..93b623d 100644
54667--- a/mm/nommu.c 54576--- a/mm/nommu.c
54668+++ b/mm/nommu.c 54577+++ b/mm/nommu.c
54669@@ -67,7 +67,6 @@ int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */ 54578@@ -67,7 +67,6 @@ int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
@@ -54699,10 +54608,10 @@ index e48b38c..eca83ab 100644
54699 new->vm_region = region; 54608 new->vm_region = region;
54700 54609
54701diff --git a/mm/page_alloc.c b/mm/page_alloc.c 54610diff --git a/mm/page_alloc.c b/mm/page_alloc.c
54702index f7cc624..3aa1b1c 100644 54611index 2b085d5..22d53f5 100644
54703--- a/mm/page_alloc.c 54612--- a/mm/page_alloc.c
54704+++ b/mm/page_alloc.c 54613+++ b/mm/page_alloc.c
54705@@ -642,6 +642,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order) 54614@@ -647,6 +647,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
54706 int i; 54615 int i;
54707 int bad = 0; 54616 int bad = 0;
54708 54617
@@ -54713,7 +54622,7 @@ index f7cc624..3aa1b1c 100644
54713 trace_mm_page_free_direct(page, order); 54622 trace_mm_page_free_direct(page, order);
54714 kmemcheck_free_shadow(page, order); 54623 kmemcheck_free_shadow(page, order);
54715 54624
54716@@ -660,6 +664,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order) 54625@@ -665,6 +669,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
54717 debug_check_no_obj_freed(page_address(page), 54626 debug_check_no_obj_freed(page_address(page),
54718 PAGE_SIZE << order); 54627 PAGE_SIZE << order);
54719 } 54628 }
@@ -54726,7 +54635,7 @@ index f7cc624..3aa1b1c 100644
54726 arch_free_page(page, order); 54635 arch_free_page(page, order);
54727 kernel_map_pages(page, 1 << order, 0); 54636 kernel_map_pages(page, 1 << order, 0);
54728 54637
54729@@ -774,8 +784,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags) 54638@@ -779,8 +789,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
54730 arch_alloc_page(page, order); 54639 arch_alloc_page(page, order);
54731 kernel_map_pages(page, 1 << order, 1); 54640 kernel_map_pages(page, 1 << order, 1);
54732 54641
@@ -54737,7 +54646,7 @@ index f7cc624..3aa1b1c 100644
54737 54646
54738 if (order && (gfp_flags & __GFP_COMP)) 54647 if (order && (gfp_flags & __GFP_COMP))
54739 prep_compound_page(page, order); 54648 prep_compound_page(page, order);
54740@@ -3986,7 +3998,7 @@ static void __init setup_usemap(struct pglist_data *pgdat, 54649@@ -3991,7 +4003,7 @@ static void __init setup_usemap(struct pglist_data *pgdat,
54741 zone->pageblock_flags = alloc_bootmem_node(pgdat, usemapsize); 54650 zone->pageblock_flags = alloc_bootmem_node(pgdat, usemapsize);
54742 } 54651 }
54743 #else 54652 #else
@@ -55919,7 +55828,7 @@ index 59ca00e..8a19dea 100644
55919 ret = -EFAULT; 55828 ret = -EFAULT;
55920 break; 55829 break;
55921diff --git a/net/core/dev.c b/net/core/dev.c 55830diff --git a/net/core/dev.c b/net/core/dev.c
55922index a7054e8..52e7eb5 100644 55831index d7d352b..ddef323 100644
55923--- a/net/core/dev.c 55832--- a/net/core/dev.c
55924+++ b/net/core/dev.c 55833+++ b/net/core/dev.c
55925@@ -2551,7 +2551,7 @@ int netif_rx_ni(struct sk_buff *skb) 55834@@ -2551,7 +2551,7 @@ int netif_rx_ni(struct sk_buff *skb)
@@ -56738,7 +56647,7 @@ index 43040e9..3f64a40 100644
56738 sk_rmem_alloc_get(s), 56647 sk_rmem_alloc_get(s),
56739 sk_wmem_alloc_get(s), 56648 sk_wmem_alloc_get(s),
56740diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h 56649diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
56741index 1a9e2da..323cb22 100644 56650index a9f8947..6cbca3e 100644
56742--- a/net/mac80211/ieee80211_i.h 56651--- a/net/mac80211/ieee80211_i.h
56743+++ b/net/mac80211/ieee80211_i.h 56652+++ b/net/mac80211/ieee80211_i.h
56744@@ -649,7 +649,7 @@ struct ieee80211_local { 56653@@ -649,7 +649,7 @@ struct ieee80211_local {
@@ -56809,10 +56718,10 @@ index 50deb01..d2f72d6 100644
56809 ieee80211_stop_device(local); 56718 ieee80211_stop_device(local);
56810 56719
56811diff --git a/net/mac80211/main.c b/net/mac80211/main.c 56720diff --git a/net/mac80211/main.c b/net/mac80211/main.c
56812index 52f15fe..590a54a 100644 56721index cd36d49..e40db43 100644
56813--- a/net/mac80211/main.c 56722--- a/net/mac80211/main.c
56814+++ b/net/mac80211/main.c 56723+++ b/net/mac80211/main.c
56815@@ -148,7 +148,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) 56724@@ -149,7 +149,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
56816 local->hw.conf.power_level = power; 56725 local->hw.conf.power_level = power;
56817 } 56726 }
56818 56727
@@ -56835,10 +56744,10 @@ index 75202b2..67b822c 100644
56835 56744
56836 local->suspended = true; 56745 local->suspended = true;
56837diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c 56746diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
56838index 6d0bd19..d20bc54 100644 56747index 68fc9c4..39b6583 100644
56839--- a/net/mac80211/rate.c 56748--- a/net/mac80211/rate.c
56840+++ b/net/mac80211/rate.c 56749+++ b/net/mac80211/rate.c
56841@@ -355,7 +355,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local, 56750@@ -358,7 +358,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
56842 56751
56843 ASSERT_RTNL(); 56752 ASSERT_RTNL();
56844 56753
@@ -57156,7 +57065,7 @@ index ca44917..0c26949 100644
57156 to += addrlen; 57065 to += addrlen;
57157 cnt++; 57066 cnt++;
57158diff --git a/net/socket.c b/net/socket.c 57067diff --git a/net/socket.c b/net/socket.c
57159index 367d547..94853e7 100644 57068index 166ad32..b12782a 100644
57160--- a/net/socket.c 57069--- a/net/socket.c
57161+++ b/net/socket.c 57070+++ b/net/socket.c
57162@@ -88,6 +88,7 @@ 57071@@ -88,6 +88,7 @@
@@ -57449,7 +57358,7 @@ index 617bea4..dae3c79 100644
57449 0, 57358 0,
57450 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0, 57359 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0,
57451diff --git a/net/wireless/reg.c b/net/wireless/reg.c 57360diff --git a/net/wireless/reg.c b/net/wireless/reg.c
57452index 8f0d97d..5743bb6 100644 57361index 55b1101..c1868df 100644
57453--- a/net/wireless/reg.c 57362--- a/net/wireless/reg.c
57454+++ b/net/wireless/reg.c 57363+++ b/net/wireless/reg.c
57455@@ -50,7 +50,7 @@ 57364@@ -50,7 +50,7 @@
@@ -57498,43 +57407,6 @@ index 8f5116f..7f7c76b 100644
57498 err = handler(dev, info, (union iwreq_data *) iwp, extra); 57407 err = handler(dev, info, (union iwreq_data *) iwp, extra);
57499 57408
57500 iwp->length += essid_compat; 57409 iwp->length += essid_compat;
57501diff --git a/net/x25/x25_facilities.c b/net/x25/x25_facilities.c
57502index 771bab0..3a8c4c4 100644
57503--- a/net/x25/x25_facilities.c
57504+++ b/net/x25/x25_facilities.c
57505@@ -134,15 +134,15 @@ int x25_parse_facilities(struct sk_buff *skb, struct x25_facilities *facilities,
57506 case X25_FAC_CLASS_D:
57507 switch (*p) {
57508 case X25_FAC_CALLING_AE:
57509- if (p[1] > X25_MAX_DTE_FACIL_LEN)
57510- break;
57511+ if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] <= 1)
57512+ return 0;
57513 dte_facs->calling_len = p[2];
57514 memcpy(dte_facs->calling_ae, &p[3], p[1] - 1);
57515 *vc_fac_mask |= X25_MASK_CALLING_AE;
57516 break;
57517 case X25_FAC_CALLED_AE:
57518- if (p[1] > X25_MAX_DTE_FACIL_LEN)
57519- break;
57520+ if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] <= 1)
57521+ return 0;
57522 dte_facs->called_len = p[2];
57523 memcpy(dte_facs->called_ae, &p[3], p[1] - 1);
57524 *vc_fac_mask |= X25_MASK_CALLED_AE;
57525diff --git a/net/x25/x25_in.c b/net/x25/x25_in.c
57526index 6317896..f729f02 100644
57527--- a/net/x25/x25_in.c
57528+++ b/net/x25/x25_in.c
57529@@ -119,6 +119,8 @@ static int x25_state1_machine(struct sock *sk, struct sk_buff *skb, int frametyp
57530 &x25->vc_facil_mask);
57531 if (len > 0)
57532 skb_pull(skb, len);
57533+ else
57534+ return -1;
57535 /*
57536 * Copy any Call User Data.
57537 */
57538diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c 57410diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
57539index a7ec5a8..48e43e9 100644 57411index a7ec5a8..48e43e9 100644
57540--- a/net/xfrm/xfrm_policy.c 57412--- a/net/xfrm/xfrm_policy.c
@@ -58534,10 +58406,10 @@ index 91852e4..be6fd43 100644
58534 mutex_unlock(&onyx->mutex); 58406 mutex_unlock(&onyx->mutex);
58535 58407
58536diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c 58408diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
58537index 5c8c7df..c68b2f0 100644 58409index aed06c9..82cdab7 100644
58538--- a/sound/core/oss/pcm_oss.c 58410--- a/sound/core/oss/pcm_oss.c
58539+++ b/sound/core/oss/pcm_oss.c 58411+++ b/sound/core/oss/pcm_oss.c
58540@@ -2966,8 +2966,8 @@ static void snd_pcm_oss_proc_done(struct snd_pcm *pcm) 58412@@ -2969,8 +2969,8 @@ static void snd_pcm_oss_proc_done(struct snd_pcm *pcm)
58541 } 58413 }
58542 } 58414 }
58543 #else /* !CONFIG_SND_VERBOSE_PROCFS */ 58415 #else /* !CONFIG_SND_VERBOSE_PROCFS */
@@ -58992,7 +58864,7 @@ index 2fc5396..33ed94e 100644
58992 58864
58993 58865
58994diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c 58866diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
58995index 4677492..fd2b7ab 100644 58867index ebfa1f8..882debe 100644
58996--- a/sound/pci/intel8x0.c 58868--- a/sound/pci/intel8x0.c
58997+++ b/sound/pci/intel8x0.c 58869+++ b/sound/pci/intel8x0.c
58998@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel8x0_ids) = { 58870@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel8x0_ids) = {
@@ -59004,7 +58876,7 @@ index 4677492..fd2b7ab 100644
59004 }; 58876 };
59005 58877
59006 MODULE_DEVICE_TABLE(pci, snd_intel8x0_ids); 58878 MODULE_DEVICE_TABLE(pci, snd_intel8x0_ids);
59007@@ -2135,7 +2135,7 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { 58879@@ -2141,7 +2141,7 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
59008 .type = AC97_TUNE_HP_ONLY 58880 .type = AC97_TUNE_HP_ONLY
59009 }, 58881 },
59010 #endif 58882 #endif
diff --git a/main/linux-grsec/r8169-fix-rx-checksum-offload.patch b/main/linux-grsec/r8169-fix-rx-checksum-offload.patch
deleted file mode 100644
index d979caac63..0000000000
--- a/main/linux-grsec/r8169-fix-rx-checksum-offload.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From adea1ac7effbddbe60a9de6d63462bfe79289e59 Mon Sep 17 00:00:00 2001
2From: Eric Dumazet <eric.dumazet@gmail.com>
3Date: Sun, 5 Sep 2010 20:04:05 -0700
4Subject: [PATCH] r8169: fix rx checksum offload
5
6While porting GRO to r8169, I found this driver has a bug in its rx
7path.
8
9All skbs given to network stack had their ip_summed set to
10CHECKSUM_NONE, while hardware said they had correct TCP/UDP checksums.
11
12The reason is driver sets skb->ip_summed on the original skb before the
13copy eventually done by copybreak. The fresh skb gets the ip_summed =
14CHECKSUM_NONE value, forcing network stack to recompute checksum, and
15preventing my GRO patch to work.
16
17Fix is to make the ip_summed setting after skb copy.
18
19Note : rx_copybreak current value is 16383, so all frames are copied...
20
21Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
22Acked-by: Francois Romieu <romieu@fr.zoreil.com>
23Signed-off-by: David S. Miller <davem@davemloft.net>
24---
25 drivers/net/r8169.c | 6 ++----
26 1 files changed, 2 insertions(+), 4 deletions(-)
27
28diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
29index 07b3fb5..56a11e2 100644
30--- a/drivers/net/r8169.c
31+++ b/drivers/net/r8169.c
32@@ -4450,9 +4450,8 @@ static inline int rtl8169_fragmented_frame(u32 status)
33 return (status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag);
34 }
35
36-static inline void rtl8169_rx_csum(struct sk_buff *skb, struct RxDesc *desc)
37+static inline void rtl8169_rx_csum(struct sk_buff *skb, u32 opts1)
38 {
39- u32 opts1 = le32_to_cpu(desc->opts1);
40 u32 status = opts1 & RxProtoMask;
41
42 if (((status == RxProtoTCP) && !(opts1 & TCPFail)) ||
43@@ -4546,8 +4545,6 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
44 continue;
45 }
46
47- rtl8169_rx_csum(skb, desc);
48-
49 if (rtl8169_try_rx_copy(&skb, tp, pkt_size, addr)) {
50 pci_dma_sync_single_for_device(pdev, addr,
51 pkt_size, PCI_DMA_FROMDEVICE);
52@@ -4558,6 +4555,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
53 tp->Rx_skbuff[entry] = NULL;
54 }
55
56+ rtl8169_rx_csum(skb, status);
57 skb_put(skb, pkt_size);
58 skb->protocol = eth_type_trans(skb, dev);
59
60--
611.7.2.3
62