diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-12-27 13:55:15 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2011-01-06 15:06:28 +0000 |
commit | aa0f0d6211a6fd30c88663c995a7586e45b67828 (patch) | |
tree | 176a2905975e498f08eb521609552a92e0a1946f | |
parent | 66a195c35299c023670b8d68d4a0b62588d15884 (diff) | |
download | alpine_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/APKBUILD | 14 | ||||
-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.patch | 62 |
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 |
4 | pkgname=linux-${_flavor} | 4 | pkgname=linux-${_flavor} |
5 | pkgver=2.6.35.9 | 5 | pkgver=2.6.35.10 |
6 | _kernver=2.6.35 | 6 | _kernver=2.6.35 |
7 | pkgrel=6 | 7 | pkgrel=0 |
8 | pkgdesc="Linux kernel with grsecurity" | 8 | pkgdesc="Linux kernel with grsecurity" |
9 | url=http://grsecurity.net | 9 | url=http://grsecurity.net |
10 | depends="mkinitfs linux-firmware" | 10 | depends="mkinitfs linux-firmware" |
@@ -13,12 +13,11 @@ options="!strip" | |||
13 | _config=${config:-kernelconfig.${CARCH}} | 13 | _config=${config:-kernelconfig.${CARCH}} |
14 | install= | 14 | install= |
15 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 | 15 | source="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 | ||
149 | md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 | 148 | md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 |
150 | eca407cf4872ad77ae23adc8242389c4 patch-2.6.35.9.bz2 | 149 | 0741b3219a009fdfc41c766416007fcf patch-2.6.35.10.bz2 |
151 | bec8a242eb219c14ce45150a0155a5ac grsecurity-2.2.0-2.6.35.9-unofficial.patch | 150 | 3855791bfc2ee4fff05fc3c783a3a477 grsecurity-2.2.0-2.6.35.10-unofficial.patch |
152 | eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch | 151 | eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch |
153 | ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch | 152 | ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch |
154 | 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch | 153 | 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch |
155 | 0ccecafd4123dcad0b0cd7787553d734 r8169-fix-rx-checksum-offload.patch | ||
156 | 139b39da44ecb577275be53d7d365949 r8169-add-gro-support.patch | 154 | 139b39da44ecb577275be53d7d365949 r8169-add-gro-support.patch |
157 | 648d8b477248f233c318a3b7a961febf 0001-Staging-hv-fix-sleeping-while-atomic-issue.patch | 155 | 648d8b477248f233c318a3b7a961febf 0001-Staging-hv-fix-sleeping-while-atomic-issue.patch |
158 | 7cae2d1e1947fa57d7aaaf31c649471c 0004-staging-hv-fix-netvsc-sleeping-while-atomic.patch | 156 | 7cae2d1e1947fa57d7aaaf31c649471c 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] |
168 | diff --git a/Makefile b/Makefile | 168 | diff --git a/Makefile b/Makefile |
169 | index 90ba786..2b577fd 100644 | 169 | index 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)) { |
10834 | diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | 10834 | diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c |
10835 | index 1d3cdda..351f83c 100644 | 10835 | index 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*/ |
15504 | diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c | 15504 | diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c |
15505 | index 02a5603..ab3491b 100644 | 15505 | index 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, |
15529 | diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c | 15529 | diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c |
15530 | index 7d04388..1180545 100644 | 15530 | index 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, |
15614 | diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c | 15614 | diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c |
15615 | index be92511..a2fce11 100644 | 15615 | index 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); |
20846 | diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c | 20846 | diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c |
20847 | index 4d32089..78f1b61 100644 | 20847 | index 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; |
21000 | diff --git a/block/blk-map.c b/block/blk-map.c | 21000 | diff --git a/block/blk-map.c b/block/blk-map.c |
21001 | index 9083cf0..b2f51c9 100644 | 21001 | index 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); |
21048 | diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c | 21048 | diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c |
21049 | index dc58402..042d6d3 100644 | 21049 | index 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, |
22938 | diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c | 22938 | diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c |
22939 | index 4730c42..10633bf 100644 | 22939 | index 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 | ||
23990 | diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c | ||
23991 | index 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; | ||
24003 | diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c | 23990 | diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c |
24004 | index 43412c0..3db9a62 100644 | 23991 | index 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); |
24016 | diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c | 24003 | diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c |
24017 | index 4187121..2ba214e 100644 | 24004 | index 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); |
24029 | diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c | 24016 | diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c |
24030 | index a0a1829..ad5cbf0 100644 | 24017 | index 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 | ||
24218 | diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c | 24205 | diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c |
24219 | index ff68e7c..eff311f 100644 | 24206 | index 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. |
24908 | diff --git a/drivers/char/tty_ldisc.c b/drivers/char/tty_ldisc.c | 24895 | diff --git a/drivers/char/tty_ldisc.c b/drivers/char/tty_ldisc.c |
24909 | index 500e740..3720c43 100644 | 24896 | index 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 | } |
24957 | diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c | 24944 | diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c |
24958 | index cb19dbc..2107818 100644 | 24945 | index 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, |
25356 | diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c | 25343 | diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c |
25357 | index d396fe5..b17192b 100644 | 25344 | index 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 |
26238 | diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h | 26225 | diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h |
26239 | index ed7ad74..902f63f 100644 | 26226 | index 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), |
26582 | diff --git a/drivers/md/md.c b/drivers/md/md.c | 26569 | diff --git a/drivers/md/md.c b/drivers/md/md.c |
26583 | index 7476d95..1dc7c2f 100644 | 26570 | index 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 | { |
27957 | diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c | 27944 | diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c |
27958 | index 449e890..4b93125 100644 | 27945 | index 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, |
28823 | diff --git a/drivers/staging/samsung-laptop/samsung-laptop.c b/drivers/staging/samsung-laptop/samsung-laptop.c | 28810 | diff --git a/drivers/staging/samsung-laptop/samsung-laptop.c b/drivers/staging/samsung-laptop/samsung-laptop.c |
28824 | index eb44b60..80eeec6 100644 | 28811 | index 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) |
30767 | diff --git a/fs/bio.c b/fs/bio.c | 30754 | diff --git a/fs/bio.c b/fs/bio.c |
30768 | index e7bf6ca..985bf52 100644 | 30755 | index 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 | } |
31085 | diff --git a/fs/compat.c b/fs/compat.c | 31072 | diff --git a/fs/compat.c b/fs/compat.c |
31086 | index af7c230..506b80e 100644 | 31073 | index 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); |
31197 | diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c | 31169 | diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c |
31198 | index 112e45a..b59845b 100644 | 31170 | index 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 | ||
31254 | diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c | 31226 | diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c |
31255 | index 8cd617b..726d087 100644 | 31227 | index 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)) |
31298 | diff --git a/fs/exec.c b/fs/exec.c | 31270 | diff --git a/fs/exec.c b/fs/exec.c |
31299 | index 956bd37..b27c155 100644 | 31271 | index 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) |
33026 | diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c | 32998 | diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c |
33027 | index 330a3c9..250c8af 100644 | 32999 | index 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; |
33658 | diff --git a/fs/pipe.c b/fs/pipe.c | 33630 | diff --git a/fs/pipe.c b/fs/pipe.c |
33659 | index 37eb1eb..119351f 100644 | 33631 | index 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 | } |
34950 | diff --git a/fs/splice.c b/fs/splice.c | 34922 | diff --git a/fs/splice.c b/fs/splice.c |
34951 | index efdbfec..3eac071 100644 | 34923 | index 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 | }; |
45429 | diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h | 45401 | diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h |
45430 | index c809e28..538e4bc 100644 | 45402 | index 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 | }; |
45441 | diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h | 45413 | diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h |
45442 | index 09a8402..1cc074d 100644 | 45414 | index 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, |
47533 | diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h | 47505 | diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h |
47534 | index 4457969..9013f4e 100644 | 47506 | index 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 | ||
49179 | diff --git a/ipc/compat.c b/ipc/compat.c | ||
49180 | index 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: | ||
49210 | diff --git a/ipc/compat_mq.c b/ipc/compat_mq.c | ||
49211 | index 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))) | ||
49233 | diff --git a/ipc/mqueue.c b/ipc/mqueue.c | 49151 | diff --git a/ipc/mqueue.c b/ipc/mqueue.c |
49234 | index c93fd3f..1e684a5 100644 | 49152 | index 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; |
49258 | diff --git a/ipc/shm.c b/ipc/shm.c | 49176 | diff --git a/ipc/shm.c b/ipc/shm.c |
49259 | index 52ed77e..bd734e4 100644 | 49177 | index 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 | { |
49475 | diff --git a/kernel/exit.c b/kernel/exit.c | 49384 | diff --git a/kernel/exit.c b/kernel/exit.c |
49476 | index ac90425..bfa06b8 100644 | 49385 | index 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. |
50815 | diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c | 50724 | diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c |
50816 | index aa9e916..6d80d38 100644 | 50725 | index 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 | /* |
50889 | diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c | 50798 | diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c |
50890 | index f37cb7d..01a2097 100644 | 50799 | index 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 | ||
51068 | diff --git a/kernel/sched.c b/kernel/sched.c | 50977 | diff --git a/kernel/sched.c b/kernel/sched.c |
51069 | index 05b40f8..b62e96c 100644 | 50978 | index 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); |
51911 | diff --git a/lib/radix-tree.c b/lib/radix-tree.c | 51820 | diff --git a/lib/radix-tree.c b/lib/radix-tree.c |
51912 | index 05da38b..e0358eb 100644 | 51821 | index 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 | { |
51924 | diff --git a/lib/vsprintf.c b/lib/vsprintf.c | 51833 | diff --git a/lib/vsprintf.c b/lib/vsprintf.c |
51925 | index b8a2f54..a383ff5 100644 | 51834 | index b8a2f54..a383ff5 100644 |
@@ -51992,10 +51901,10 @@ index 142c84a..59d8f7c 100644 | |||
51992 | return count; | 51901 | return count; |
51993 | } | 51902 | } |
51994 | diff --git a/mm/filemap.c b/mm/filemap.c | 51903 | diff --git a/mm/filemap.c b/mm/filemap.c |
51995 | index 20e5642..daadba4 100644 | 51904 | index 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 |
52874 | diff --git a/mm/mempolicy.c b/mm/mempolicy.c | 52783 | diff --git a/mm/mempolicy.c b/mm/mempolicy.c |
52875 | index 5bc0a96..cb70aac 100644 | 52784 | index 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 | ||
54327 | diff --git a/mm/mprotect.c b/mm/mprotect.c | 54236 | diff --git a/mm/mprotect.c b/mm/mprotect.c |
54328 | index 2d1bf7c..13d159a 100644 | 54237 | index 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) |
54665 | diff --git a/mm/nommu.c b/mm/nommu.c | 54574 | diff --git a/mm/nommu.c b/mm/nommu.c |
54666 | index e48b38c..eca83ab 100644 | 54575 | index 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 | ||
54701 | diff --git a/mm/page_alloc.c b/mm/page_alloc.c | 54610 | diff --git a/mm/page_alloc.c b/mm/page_alloc.c |
54702 | index f7cc624..3aa1b1c 100644 | 54611 | index 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; |
55921 | diff --git a/net/core/dev.c b/net/core/dev.c | 55830 | diff --git a/net/core/dev.c b/net/core/dev.c |
55922 | index a7054e8..52e7eb5 100644 | 55831 | index 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), |
56740 | diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h | 56649 | diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h |
56741 | index 1a9e2da..323cb22 100644 | 56650 | index 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 | ||
56811 | diff --git a/net/mac80211/main.c b/net/mac80211/main.c | 56720 | diff --git a/net/mac80211/main.c b/net/mac80211/main.c |
56812 | index 52f15fe..590a54a 100644 | 56721 | index 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; |
56837 | diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c | 56746 | diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c |
56838 | index 6d0bd19..d20bc54 100644 | 56747 | index 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++; |
57158 | diff --git a/net/socket.c b/net/socket.c | 57067 | diff --git a/net/socket.c b/net/socket.c |
57159 | index 367d547..94853e7 100644 | 57068 | index 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, |
57451 | diff --git a/net/wireless/reg.c b/net/wireless/reg.c | 57360 | diff --git a/net/wireless/reg.c b/net/wireless/reg.c |
57452 | index 8f0d97d..5743bb6 100644 | 57361 | index 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; |
57501 | diff --git a/net/x25/x25_facilities.c b/net/x25/x25_facilities.c | ||
57502 | index 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; | ||
57525 | diff --git a/net/x25/x25_in.c b/net/x25/x25_in.c | ||
57526 | index 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 | */ | ||
57538 | diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c | 57410 | diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c |
57539 | index a7ec5a8..48e43e9 100644 | 57411 | index 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 | ||
58536 | diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c | 58408 | diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c |
58537 | index 5c8c7df..c68b2f0 100644 | 58409 | index 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 | ||
58994 | diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c | 58866 | diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c |
58995 | index 4677492..fd2b7ab 100644 | 58867 | index 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 @@ | |||
1 | From adea1ac7effbddbe60a9de6d63462bfe79289e59 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eric Dumazet <eric.dumazet@gmail.com> | ||
3 | Date: Sun, 5 Sep 2010 20:04:05 -0700 | ||
4 | Subject: [PATCH] r8169: fix rx checksum offload | ||
5 | |||
6 | While porting GRO to r8169, I found this driver has a bug in its rx | ||
7 | path. | ||
8 | |||
9 | All skbs given to network stack had their ip_summed set to | ||
10 | CHECKSUM_NONE, while hardware said they had correct TCP/UDP checksums. | ||
11 | |||
12 | The reason is driver sets skb->ip_summed on the original skb before the | ||
13 | copy eventually done by copybreak. The fresh skb gets the ip_summed = | ||
14 | CHECKSUM_NONE value, forcing network stack to recompute checksum, and | ||
15 | preventing my GRO patch to work. | ||
16 | |||
17 | Fix is to make the ip_summed setting after skb copy. | ||
18 | |||
19 | Note : rx_copybreak current value is 16383, so all frames are copied... | ||
20 | |||
21 | Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> | ||
22 | Acked-by: Francois Romieu <romieu@fr.zoreil.com> | ||
23 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
24 | --- | ||
25 | drivers/net/r8169.c | 6 ++---- | ||
26 | 1 files changed, 2 insertions(+), 4 deletions(-) | ||
27 | |||
28 | diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c | ||
29 | index 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 | -- | ||
61 | 1.7.2.3 | ||
62 | |||