diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2011-02-24 11:29:00 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2011-02-24 12:09:38 +0000 |
commit | 66f762db133ac258abede380dd5303d7aa173fa1 (patch) | |
tree | 1b522a5a103b16c23c6e23d1d20edc92d24a8cba | |
parent | 11442505dc8d047c2e144557be4f910b27f8f4f9 (diff) | |
download | alpine_aports-66f762db133ac258abede380dd5303d7aa173fa1.tar.bz2 alpine_aports-66f762db133ac258abede380dd5303d7aa173fa1.tar.xz alpine_aports-66f762db133ac258abede380dd5303d7aa173fa1.zip |
main/linux-grsec: upgrade to grsecurity-2.2.0-2.6.35.11-unofficial
-rw-r--r-- | main/linux-grsec/APKBUILD | 7 | ||||
-rw-r--r-- | main/linux-grsec/grsecurity-2.2.0-2.6.35.11-unofficial.patch (renamed from main/linux-grsec/grsecurity-2.2.0-2.6.35.10-unofficial.patch) | 251 |
2 files changed, 116 insertions, 142 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD index 84a7daef7e..b4403df641 100644 --- a/main/linux-grsec/APKBUILD +++ b/main/linux-grsec/APKBUILD | |||
@@ -2,11 +2,12 @@ | |||
2 | 2 | ||
3 | _flavor=grsec | 3 | _flavor=grsec |
4 | pkgname=linux-${_flavor} | 4 | pkgname=linux-${_flavor} |
5 | pkgver=2.6.35.10 | 5 | pkgver=2.6.35.11 |
6 | _kernver=2.6.35 | 6 | _kernver=2.6.35 |
7 | pkgrel=0 | 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 | arch="all" | ||
10 | depends="mkinitfs linux-firmware" | 11 | depends="mkinitfs linux-firmware" |
11 | makedepends="perl installkernel bash" | 12 | makedepends="perl installkernel bash" |
12 | options="!strip" | 13 | options="!strip" |
@@ -146,8 +147,8 @@ firmware() { | |||
146 | } | 147 | } |
147 | 148 | ||
148 | md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 | 149 | md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 |
149 | 0741b3219a009fdfc41c766416007fcf patch-2.6.35.10.bz2 | 150 | 573170b7d56d30d06d26b705d4794615 patch-2.6.35.11.bz2 |
150 | 3855791bfc2ee4fff05fc3c783a3a477 grsecurity-2.2.0-2.6.35.10-unofficial.patch | 151 | a3b572360778b04f99ff9c7854d5d60a grsecurity-2.2.0-2.6.35.11-unofficial.patch |
151 | eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch | 152 | eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch |
152 | ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch | 153 | ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch |
153 | 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch | 154 | 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch |
diff --git a/main/linux-grsec/grsecurity-2.2.0-2.6.35.10-unofficial.patch b/main/linux-grsec/grsecurity-2.2.0-2.6.35.11-unofficial.patch index bfdddfb8fd..ee248da77e 100644 --- a/main/linux-grsec/grsecurity-2.2.0-2.6.35.10-unofficial.patch +++ b/main/linux-grsec/grsecurity-2.2.0-2.6.35.11-unofficial.patch | |||
@@ -149,10 +149,10 @@ index 931c806..e6f6ff1 100644 | |||
149 | 149 | ||
150 | [ Subsystems should have already defined a struct kobj_type as a | 150 | [ Subsystems should have already defined a struct kobj_type as a |
151 | diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt | 151 | diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt |
152 | index 2b2407d..4ebd036 100644 | 152 | index c74ff6f..015e19d 100644 |
153 | --- a/Documentation/kernel-parameters.txt | 153 | --- a/Documentation/kernel-parameters.txt |
154 | +++ b/Documentation/kernel-parameters.txt | 154 | +++ b/Documentation/kernel-parameters.txt |
155 | @@ -1910,6 +1910,12 @@ and is between 256 and 4096 characters. It is defined in the file | 155 | @@ -1911,6 +1911,12 @@ and is between 256 and 4096 characters. It is defined in the file |
156 | the specified number of seconds. This is to be used if | 156 | the specified number of seconds. This is to be used if |
157 | your oopses keep scrolling off the screen. | 157 | your oopses keep scrolling off the screen. |
158 | 158 | ||
@@ -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 6538501..6616857 100644 | 169 | index 78daa86..1e9e325 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; \ |
@@ -9017,7 +9017,7 @@ index d1f4a76..e1f9b51 100644 | |||
9017 | #define pgprot_writecombine pgprot_writecombine | 9017 | #define pgprot_writecombine pgprot_writecombine |
9018 | extern pgprot_t pgprot_writecombine(pgprot_t prot); | 9018 | extern pgprot_t pgprot_writecombine(pgprot_t prot); |
9019 | diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h | 9019 | diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h |
9020 | index 7e5c6a6..7093da3 100644 | 9020 | index eccaebc..d4ae069 100644 |
9021 | --- a/arch/x86/include/asm/processor.h | 9021 | --- a/arch/x86/include/asm/processor.h |
9022 | +++ b/arch/x86/include/asm/processor.h | 9022 | +++ b/arch/x86/include/asm/processor.h |
9023 | @@ -269,7 +269,7 @@ struct tss_struct { | 9023 | @@ -269,7 +269,7 @@ struct tss_struct { |
@@ -9029,7 +9029,7 @@ index 7e5c6a6..7093da3 100644 | |||
9029 | 9029 | ||
9030 | /* | 9030 | /* |
9031 | * Save the original ist values for checking stack pointers during debugging | 9031 | * Save the original ist values for checking stack pointers during debugging |
9032 | @@ -884,8 +884,15 @@ static inline void spin_lock_prefetch(const void *x) | 9032 | @@ -861,8 +861,15 @@ static inline void spin_lock_prefetch(const void *x) |
9033 | */ | 9033 | */ |
9034 | #define TASK_SIZE PAGE_OFFSET | 9034 | #define TASK_SIZE PAGE_OFFSET |
9035 | #define TASK_SIZE_MAX TASK_SIZE | 9035 | #define TASK_SIZE_MAX TASK_SIZE |
@@ -9046,7 +9046,7 @@ index 7e5c6a6..7093da3 100644 | |||
9046 | 9046 | ||
9047 | #define INIT_THREAD { \ | 9047 | #define INIT_THREAD { \ |
9048 | .sp0 = sizeof(init_stack) + (long)&init_stack, \ | 9048 | .sp0 = sizeof(init_stack) + (long)&init_stack, \ |
9049 | @@ -902,7 +909,7 @@ static inline void spin_lock_prefetch(const void *x) | 9049 | @@ -879,7 +886,7 @@ static inline void spin_lock_prefetch(const void *x) |
9050 | */ | 9050 | */ |
9051 | #define INIT_TSS { \ | 9051 | #define INIT_TSS { \ |
9052 | .x86_tss = { \ | 9052 | .x86_tss = { \ |
@@ -9055,7 +9055,7 @@ index 7e5c6a6..7093da3 100644 | |||
9055 | .ss0 = __KERNEL_DS, \ | 9055 | .ss0 = __KERNEL_DS, \ |
9056 | .ss1 = __KERNEL_CS, \ | 9056 | .ss1 = __KERNEL_CS, \ |
9057 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \ | 9057 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \ |
9058 | @@ -913,11 +920,7 @@ static inline void spin_lock_prefetch(const void *x) | 9058 | @@ -890,11 +897,7 @@ static inline void spin_lock_prefetch(const void *x) |
9059 | extern unsigned long thread_saved_pc(struct task_struct *tsk); | 9059 | extern unsigned long thread_saved_pc(struct task_struct *tsk); |
9060 | 9060 | ||
9061 | #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long)) | 9061 | #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long)) |
@@ -9068,7 +9068,7 @@ index 7e5c6a6..7093da3 100644 | |||
9068 | 9068 | ||
9069 | /* | 9069 | /* |
9070 | * The below -8 is to reserve 8 bytes on top of the ring0 stack. | 9070 | * The below -8 is to reserve 8 bytes on top of the ring0 stack. |
9071 | @@ -932,7 +935,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); | 9071 | @@ -909,7 +912,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); |
9072 | #define task_pt_regs(task) \ | 9072 | #define task_pt_regs(task) \ |
9073 | ({ \ | 9073 | ({ \ |
9074 | struct pt_regs *__regs__; \ | 9074 | struct pt_regs *__regs__; \ |
@@ -9077,7 +9077,7 @@ index 7e5c6a6..7093da3 100644 | |||
9077 | __regs__ - 1; \ | 9077 | __regs__ - 1; \ |
9078 | }) | 9078 | }) |
9079 | 9079 | ||
9080 | @@ -942,13 +945,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); | 9080 | @@ -919,13 +922,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); |
9081 | /* | 9081 | /* |
9082 | * User space process size. 47bits minus one guard page. | 9082 | * User space process size. 47bits minus one guard page. |
9083 | */ | 9083 | */ |
@@ -9093,7 +9093,7 @@ index 7e5c6a6..7093da3 100644 | |||
9093 | 9093 | ||
9094 | #define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ | 9094 | #define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ |
9095 | IA32_PAGE_OFFSET : TASK_SIZE_MAX) | 9095 | IA32_PAGE_OFFSET : TASK_SIZE_MAX) |
9096 | @@ -985,6 +988,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip, | 9096 | @@ -962,6 +965,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip, |
9097 | */ | 9097 | */ |
9098 | #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) | 9098 | #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) |
9099 | 9099 | ||
@@ -10513,7 +10513,7 @@ index 4424c73..e90c367 100644 | |||
10513 | .free_coherent = free_coherent, | 10513 | .free_coherent = free_coherent, |
10514 | .map_page = map_page, | 10514 | .map_page = map_page, |
10515 | diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c | 10515 | diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c |
10516 | index ad1515d..96832b6 100644 | 10516 | index 4d90327..f63e390 100644 |
10517 | --- a/arch/x86/kernel/apic/io_apic.c | 10517 | --- a/arch/x86/kernel/apic/io_apic.c |
10518 | +++ b/arch/x86/kernel/apic/io_apic.c | 10518 | +++ b/arch/x86/kernel/apic/io_apic.c |
10519 | @@ -696,7 +696,7 @@ struct IO_APIC_route_entry **alloc_ioapic_entries(void) | 10519 | @@ -696,7 +696,7 @@ struct IO_APIC_route_entry **alloc_ioapic_entries(void) |
@@ -13292,10 +13292,10 @@ index fa6551d..43662ff 100644 | |||
13292 | /* | 13292 | /* |
13293 | * Synchronization. | 13293 | * Synchronization. |
13294 | diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c | 13294 | diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c |
13295 | index 3561702..f4807b7 100644 | 13295 | index 2573689..1930d0d 100644 |
13296 | --- a/arch/x86/kernel/microcode_intel.c | 13296 | --- a/arch/x86/kernel/microcode_intel.c |
13297 | +++ b/arch/x86/kernel/microcode_intel.c | 13297 | +++ b/arch/x86/kernel/microcode_intel.c |
13298 | @@ -446,13 +446,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device) | 13298 | @@ -440,13 +440,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device) |
13299 | 13299 | ||
13300 | static int get_ucode_user(void *to, const void *from, size_t n) | 13300 | static int get_ucode_user(void *to, const void *from, size_t n) |
13301 | { | 13301 | { |
@@ -13311,7 +13311,7 @@ index 3561702..f4807b7 100644 | |||
13311 | } | 13311 | } |
13312 | 13312 | ||
13313 | static void microcode_fini_cpu(int cpu) | 13313 | static void microcode_fini_cpu(int cpu) |
13314 | @@ -463,7 +463,7 @@ static void microcode_fini_cpu(int cpu) | 13314 | @@ -457,7 +457,7 @@ static void microcode_fini_cpu(int cpu) |
13315 | uci->mc = NULL; | 13315 | uci->mc = NULL; |
13316 | } | 13316 | } |
13317 | 13317 | ||
@@ -13320,7 +13320,7 @@ index 3561702..f4807b7 100644 | |||
13320 | .request_microcode_user = request_microcode_user, | 13320 | .request_microcode_user = request_microcode_user, |
13321 | .request_microcode_fw = request_microcode_fw, | 13321 | .request_microcode_fw = request_microcode_fw, |
13322 | .collect_cpu_info = collect_cpu_info, | 13322 | .collect_cpu_info = collect_cpu_info, |
13323 | @@ -471,7 +471,7 @@ static struct microcode_ops microcode_intel_ops = { | 13323 | @@ -465,7 +465,7 @@ static struct microcode_ops microcode_intel_ops = { |
13324 | .microcode_fini_cpu = microcode_fini_cpu, | 13324 | .microcode_fini_cpu = microcode_fini_cpu, |
13325 | }; | 13325 | }; |
13326 | 13326 | ||
@@ -14150,7 +14150,7 @@ index 4fd173c..9dc1de7 100644 | |||
14150 | 14150 | ||
14151 | if (current_thread_info()->status & TS_RESTORE_SIGMASK) | 14151 | if (current_thread_info()->status & TS_RESTORE_SIGMASK) |
14152 | diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c | 14152 | diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c |
14153 | index 821ee1b..e29b497 100644 | 14153 | index 40eb0f9..c493745 100644 |
14154 | --- a/arch/x86/kernel/smpboot.c | 14154 | --- a/arch/x86/kernel/smpboot.c |
14155 | +++ b/arch/x86/kernel/smpboot.c | 14155 | +++ b/arch/x86/kernel/smpboot.c |
14156 | @@ -786,7 +786,11 @@ do_rest: | 14156 | @@ -786,7 +786,11 @@ do_rest: |
@@ -15414,7 +15414,7 @@ index 1b950d1..ca83b2a 100644 | |||
15414 | EXPORT_SYMBOL(copy_page); | 15414 | EXPORT_SYMBOL(copy_page); |
15415 | EXPORT_SYMBOL(clear_page); | 15415 | EXPORT_SYMBOL(clear_page); |
15416 | diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c | 15416 | diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c |
15417 | index 37e68fc..121259e 100644 | 15417 | index aa8bf4f..60b86b9 100644 |
15418 | --- a/arch/x86/kernel/xsave.c | 15418 | --- a/arch/x86/kernel/xsave.c |
15419 | +++ b/arch/x86/kernel/xsave.c | 15419 | +++ b/arch/x86/kernel/xsave.c |
15420 | @@ -54,7 +54,7 @@ int check_for_xstate(struct i387_fxsave_struct __user *buf, | 15420 | @@ -54,7 +54,7 @@ int check_for_xstate(struct i387_fxsave_struct __user *buf, |
@@ -20568,7 +20568,7 @@ index 9c57cb1..e2731ff 100644 | |||
20568 | syscall_init(); /* This sets MSR_*STAR and related */ | 20568 | syscall_init(); /* This sets MSR_*STAR and related */ |
20569 | #endif | 20569 | #endif |
20570 | diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile | 20570 | diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile |
20571 | index 6b4ffed..f55f243 100644 | 20571 | index dd78ef6..ccd4889 100644 |
20572 | --- a/arch/x86/vdso/Makefile | 20572 | --- a/arch/x86/vdso/Makefile |
20573 | +++ b/arch/x86/vdso/Makefile | 20573 | +++ b/arch/x86/vdso/Makefile |
20574 | @@ -122,7 +122,7 @@ quiet_cmd_vdso = VDSO $@ | 20574 | @@ -122,7 +122,7 @@ quiet_cmd_vdso = VDSO $@ |
@@ -25445,7 +25445,7 @@ index 607241c..54b4fe6 100644 | |||
25445 | if (regcomp | 25445 | if (regcomp |
25446 | (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { | 25446 | (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { |
25447 | diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c | 25447 | diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c |
25448 | index a718463..2569728 100644 | 25448 | index cb5b4ce..68a16ab 100644 |
25449 | --- a/drivers/gpu/drm/radeon/radeon_device.c | 25449 | --- a/drivers/gpu/drm/radeon/radeon_device.c |
25450 | +++ b/drivers/gpu/drm/radeon/radeon_device.c | 25450 | +++ b/drivers/gpu/drm/radeon/radeon_device.c |
25451 | @@ -562,7 +562,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev) | 25451 | @@ -562,7 +562,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev) |
@@ -26223,7 +26223,7 @@ index f34b22b..04ac86f 100644 | |||
26223 | static int psaux_registered; | 26223 | static int psaux_registered; |
26224 | #endif | 26224 | #endif |
26225 | 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 |
26226 | index 8c53926..5259b1e 100644 | 26226 | index a0730fd..531c1cb 100644 |
26227 | --- a/drivers/input/serio/i8042-x86ia64io.h | 26227 | --- a/drivers/input/serio/i8042-x86ia64io.h |
26228 | +++ b/drivers/input/serio/i8042-x86ia64io.h | 26228 | +++ b/drivers/input/serio/i8042-x86ia64io.h |
26229 | @@ -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[] = { |
@@ -26235,8 +26235,8 @@ index 8c53926..5259b1e 100644 | |||
26235 | }; | 26235 | }; |
26236 | 26236 | ||
26237 | /* | 26237 | /* |
26238 | @@ -420,7 +420,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = { | 26238 | @@ -427,7 +427,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = { |
26239 | DMI_MATCH(DMI_PRODUCT_VERSION, "0100"), | 26239 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"), |
26240 | }, | 26240 | }, |
26241 | }, | 26241 | }, |
26242 | - { } | 26242 | - { } |
@@ -26244,7 +26244,7 @@ index 8c53926..5259b1e 100644 | |||
26244 | }; | 26244 | }; |
26245 | 26245 | ||
26246 | static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = { | 26246 | 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[] = { | 26247 | @@ -501,7 +501,7 @@ static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = { |
26248 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 1720"), | 26248 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 1720"), |
26249 | }, | 26249 | }, |
26250 | }, | 26250 | }, |
@@ -26253,7 +26253,7 @@ index 8c53926..5259b1e 100644 | |||
26253 | }; | 26253 | }; |
26254 | 26254 | ||
26255 | #ifdef CONFIG_PNP | 26255 | #ifdef CONFIG_PNP |
26256 | @@ -513,7 +513,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = { | 26256 | @@ -520,7 +520,7 @@ static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = { |
26257 | DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), | 26257 | DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), |
26258 | }, | 26258 | }, |
26259 | }, | 26259 | }, |
@@ -26262,7 +26262,7 @@ index 8c53926..5259b1e 100644 | |||
26262 | }; | 26262 | }; |
26263 | 26263 | ||
26264 | static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = { | 26264 | 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[] = { | 26265 | @@ -544,7 +544,7 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = { |
26266 | DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */ | 26266 | DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */ |
26267 | }, | 26267 | }, |
26268 | }, | 26268 | }, |
@@ -26271,7 +26271,7 @@ index 8c53926..5259b1e 100644 | |||
26271 | }; | 26271 | }; |
26272 | #endif | 26272 | #endif |
26273 | 26273 | ||
26274 | @@ -611,7 +611,7 @@ static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = { | 26274 | @@ -629,7 +629,7 @@ static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = { |
26275 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4280"), | 26275 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4280"), |
26276 | }, | 26276 | }, |
26277 | }, | 26277 | }, |
@@ -26554,7 +26554,7 @@ index 1742435..014d6d8 100644 | |||
26554 | #endif | 26554 | #endif |
26555 | 26555 | ||
26556 | diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c | 26556 | diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c |
26557 | index 9924ea2..498330c 100644 | 26557 | index 4a83321..04612a8 100644 |
26558 | --- a/drivers/md/dm-table.c | 26558 | --- a/drivers/md/dm-table.c |
26559 | +++ b/drivers/md/dm-table.c | 26559 | +++ b/drivers/md/dm-table.c |
26560 | @@ -363,7 +363,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev, | 26560 | @@ -363,7 +363,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev, |
@@ -26567,10 +26567,10 @@ index 9924ea2..498330c 100644 | |||
26567 | "start=%llu, len=%llu, dev_size=%llu", | 26567 | "start=%llu, len=%llu, dev_size=%llu", |
26568 | dm_device_name(ti->table->md), bdevname(bdev, b), | 26568 | dm_device_name(ti->table->md), bdevname(bdev, b), |
26569 | 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 |
26570 | index 7de96c2..d26e244 100644 | 26570 | index db6552c..55e0ff9 100644 |
26571 | --- a/drivers/md/md.c | 26571 | --- a/drivers/md/md.c |
26572 | +++ b/drivers/md/md.c | 26572 | +++ b/drivers/md/md.c |
26573 | @@ -6352,7 +6352,7 @@ static int md_seq_show(struct seq_file *seq, void *v) | 26573 | @@ -6351,7 +6351,7 @@ static int md_seq_show(struct seq_file *seq, void *v) |
26574 | chunk_kb ? "KB" : "B"); | 26574 | chunk_kb ? "KB" : "B"); |
26575 | if (bitmap->file) { | 26575 | if (bitmap->file) { |
26576 | seq_printf(seq, ", file: "); | 26576 | seq_printf(seq, ", file: "); |
@@ -26579,7 +26579,7 @@ index 7de96c2..d26e244 100644 | |||
26579 | } | 26579 | } |
26580 | 26580 | ||
26581 | seq_printf(seq, "\n"); | 26581 | seq_printf(seq, "\n"); |
26582 | @@ -6446,7 +6446,7 @@ static int is_mddev_idle(mddev_t *mddev, int init) | 26582 | @@ -6445,7 +6445,7 @@ static int is_mddev_idle(mddev_t *mddev, int init) |
26583 | struct gendisk *disk = rdev->bdev->bd_contains->bd_disk; | 26583 | struct gendisk *disk = rdev->bdev->bd_contains->bd_disk; |
26584 | curr_events = (int)part_stat_read(&disk->part0, sectors[0]) + | 26584 | curr_events = (int)part_stat_read(&disk->part0, sectors[0]) + |
26585 | (int)part_stat_read(&disk->part0, sectors[1]) - | 26585 | (int)part_stat_read(&disk->part0, sectors[1]) - |
@@ -28412,10 +28412,10 @@ index 3dcddfe..58216cb 100644 | |||
28412 | 28412 | ||
28413 | 28413 | ||
28414 | diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c | 28414 | diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c |
28415 | index be1a8fc..f67861f 100644 | 28415 | index 8dc5fb1..75f6440 100644 |
28416 | --- a/drivers/scsi/qla2xxx/qla_os.c | 28416 | --- a/drivers/scsi/qla2xxx/qla_os.c |
28417 | +++ b/drivers/scsi/qla2xxx/qla_os.c | 28417 | +++ b/drivers/scsi/qla2xxx/qla_os.c |
28418 | @@ -3899,7 +3899,7 @@ static struct pci_driver qla2xxx_pci_driver = { | 28418 | @@ -3900,7 +3900,7 @@ static struct pci_driver qla2xxx_pci_driver = { |
28419 | .err_handler = &qla2xxx_err_handler, | 28419 | .err_handler = &qla2xxx_err_handler, |
28420 | }; | 28420 | }; |
28421 | 28421 | ||
@@ -31268,7 +31268,7 @@ index 3745f61..b680a98 100644 | |||
31268 | i += packet_length_size; | 31268 | i += packet_length_size; |
31269 | 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)) |
31270 | diff --git a/fs/exec.c b/fs/exec.c | 31270 | diff --git a/fs/exec.c b/fs/exec.c |
31271 | index dd8cabd..b2adde2 100644 | 31271 | index e03ddd4..5d9b0ce 100644 |
31272 | --- a/fs/exec.c | 31272 | --- a/fs/exec.c |
31273 | +++ b/fs/exec.c | 31273 | +++ b/fs/exec.c |
31274 | @@ -55,12 +55,24 @@ | 31274 | @@ -55,12 +55,24 @@ |
@@ -31338,8 +31338,8 @@ index dd8cabd..b2adde2 100644 | |||
31338 | + | 31338 | + |
31339 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); | 31339 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); |
31340 | INIT_LIST_HEAD(&vma->anon_vma_chain); | 31340 | INIT_LIST_HEAD(&vma->anon_vma_chain); |
31341 | err = insert_vm_struct(mm, vma); | 31341 | |
31342 | @@ -272,6 +281,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm) | 31342 | @@ -277,6 +286,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm) |
31343 | mm->stack_vm = mm->total_vm = 1; | 31343 | mm->stack_vm = mm->total_vm = 1; |
31344 | up_write(&mm->mmap_sem); | 31344 | up_write(&mm->mmap_sem); |
31345 | bprm->p = vma->vm_end - sizeof(void *); | 31345 | bprm->p = vma->vm_end - sizeof(void *); |
@@ -31352,7 +31352,7 @@ index dd8cabd..b2adde2 100644 | |||
31352 | return 0; | 31352 | return 0; |
31353 | err: | 31353 | err: |
31354 | up_write(&mm->mmap_sem); | 31354 | up_write(&mm->mmap_sem); |
31355 | @@ -506,7 +521,7 @@ int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm) | 31355 | @@ -511,7 +526,7 @@ int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm) |
31356 | int r; | 31356 | int r; |
31357 | mm_segment_t oldfs = get_fs(); | 31357 | mm_segment_t oldfs = get_fs(); |
31358 | set_fs(KERNEL_DS); | 31358 | set_fs(KERNEL_DS); |
@@ -31361,7 +31361,7 @@ index dd8cabd..b2adde2 100644 | |||
31361 | set_fs(oldfs); | 31361 | set_fs(oldfs); |
31362 | return r; | 31362 | return r; |
31363 | } | 31363 | } |
31364 | @@ -536,7 +551,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) | 31364 | @@ -541,7 +556,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) |
31365 | unsigned long new_end = old_end - shift; | 31365 | unsigned long new_end = old_end - shift; |
31366 | struct mmu_gather *tlb; | 31366 | struct mmu_gather *tlb; |
31367 | 31367 | ||
@@ -31371,7 +31371,7 @@ index dd8cabd..b2adde2 100644 | |||
31371 | 31371 | ||
31372 | /* | 31372 | /* |
31373 | * ensure there are no vmas between where we want to go | 31373 | * ensure there are no vmas between where we want to go |
31374 | @@ -545,6 +561,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) | 31374 | @@ -550,6 +566,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) |
31375 | if (vma != find_vma(mm, new_start)) | 31375 | if (vma != find_vma(mm, new_start)) |
31376 | return -EFAULT; | 31376 | return -EFAULT; |
31377 | 31377 | ||
@@ -31382,7 +31382,7 @@ index dd8cabd..b2adde2 100644 | |||
31382 | /* | 31382 | /* |
31383 | * cover the whole range: [new_start, old_end) | 31383 | * cover the whole range: [new_start, old_end) |
31384 | */ | 31384 | */ |
31385 | @@ -640,8 +660,28 @@ int setup_arg_pages(struct linux_binprm *bprm, | 31385 | @@ -645,8 +665,28 @@ int setup_arg_pages(struct linux_binprm *bprm, |
31386 | bprm->exec -= stack_shift; | 31386 | bprm->exec -= stack_shift; |
31387 | 31387 | ||
31388 | down_write(&mm->mmap_sem); | 31388 | down_write(&mm->mmap_sem); |
@@ -31411,7 +31411,7 @@ index dd8cabd..b2adde2 100644 | |||
31411 | /* | 31411 | /* |
31412 | * Adjust stack execute permissions; explicitly enable for | 31412 | * Adjust stack execute permissions; explicitly enable for |
31413 | * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone | 31413 | * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone |
31414 | @@ -660,13 +700,6 @@ int setup_arg_pages(struct linux_binprm *bprm, | 31414 | @@ -665,13 +705,6 @@ int setup_arg_pages(struct linux_binprm *bprm, |
31415 | goto out_unlock; | 31415 | goto out_unlock; |
31416 | BUG_ON(prev != vma); | 31416 | BUG_ON(prev != vma); |
31417 | 31417 | ||
@@ -31425,7 +31425,7 @@ index dd8cabd..b2adde2 100644 | |||
31425 | /* mprotect_fixup is overkill to remove the temporary stack flags */ | 31425 | /* mprotect_fixup is overkill to remove the temporary stack flags */ |
31426 | vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP; | 31426 | vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP; |
31427 | 31427 | ||
31428 | @@ -706,7 +739,7 @@ struct file *open_exec(const char *name) | 31428 | @@ -711,7 +744,7 @@ struct file *open_exec(const char *name) |
31429 | int err; | 31429 | int err; |
31430 | 31430 | ||
31431 | file = do_filp_open(AT_FDCWD, name, | 31431 | file = do_filp_open(AT_FDCWD, name, |
@@ -31434,7 +31434,7 @@ index dd8cabd..b2adde2 100644 | |||
31434 | MAY_EXEC | MAY_OPEN); | 31434 | MAY_EXEC | MAY_OPEN); |
31435 | if (IS_ERR(file)) | 31435 | if (IS_ERR(file)) |
31436 | goto out; | 31436 | goto out; |
31437 | @@ -743,7 +776,7 @@ int kernel_read(struct file *file, loff_t offset, | 31437 | @@ -748,7 +781,7 @@ int kernel_read(struct file *file, loff_t offset, |
31438 | old_fs = get_fs(); | 31438 | old_fs = get_fs(); |
31439 | set_fs(get_ds()); | 31439 | set_fs(get_ds()); |
31440 | /* 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() */ |
@@ -31443,7 +31443,7 @@ index dd8cabd..b2adde2 100644 | |||
31443 | set_fs(old_fs); | 31443 | set_fs(old_fs); |
31444 | return result; | 31444 | return result; |
31445 | } | 31445 | } |
31446 | @@ -1161,7 +1194,7 @@ int check_unsafe_exec(struct linux_binprm *bprm) | 31446 | @@ -1166,7 +1199,7 @@ int check_unsafe_exec(struct linux_binprm *bprm) |
31447 | } | 31447 | } |
31448 | rcu_read_unlock(); | 31448 | rcu_read_unlock(); |
31449 | 31449 | ||
@@ -31452,7 +31452,7 @@ index dd8cabd..b2adde2 100644 | |||
31452 | bprm->unsafe |= LSM_UNSAFE_SHARE; | 31452 | bprm->unsafe |= LSM_UNSAFE_SHARE; |
31453 | } else { | 31453 | } else { |
31454 | res = -EAGAIN; | 31454 | res = -EAGAIN; |
31455 | @@ -1357,6 +1390,11 @@ int do_execve(char * filename, | 31455 | @@ -1362,6 +1395,11 @@ int do_execve(char * filename, |
31456 | char __user *__user *envp, | 31456 | char __user *__user *envp, |
31457 | struct pt_regs * regs) | 31457 | struct pt_regs * regs) |
31458 | { | 31458 | { |
@@ -31464,7 +31464,7 @@ index dd8cabd..b2adde2 100644 | |||
31464 | struct linux_binprm *bprm; | 31464 | struct linux_binprm *bprm; |
31465 | struct file *file; | 31465 | struct file *file; |
31466 | struct files_struct *displaced; | 31466 | struct files_struct *displaced; |
31467 | @@ -1393,6 +1431,18 @@ int do_execve(char * filename, | 31467 | @@ -1398,6 +1436,18 @@ int do_execve(char * filename, |
31468 | bprm->filename = filename; | 31468 | bprm->filename = filename; |
31469 | bprm->interp = filename; | 31469 | bprm->interp = filename; |
31470 | 31470 | ||
@@ -31483,7 +31483,7 @@ index dd8cabd..b2adde2 100644 | |||
31483 | retval = bprm_mm_init(bprm); | 31483 | retval = bprm_mm_init(bprm); |
31484 | if (retval) | 31484 | if (retval) |
31485 | goto out_file; | 31485 | goto out_file; |
31486 | @@ -1422,10 +1472,41 @@ int do_execve(char * filename, | 31486 | @@ -1427,10 +1477,41 @@ int do_execve(char * filename, |
31487 | if (retval < 0) | 31487 | if (retval < 0) |
31488 | goto out; | 31488 | goto out; |
31489 | 31489 | ||
@@ -31526,7 +31526,7 @@ index dd8cabd..b2adde2 100644 | |||
31526 | 31526 | ||
31527 | /* execve succeeded */ | 31527 | /* execve succeeded */ |
31528 | current->fs->in_exec = 0; | 31528 | current->fs->in_exec = 0; |
31529 | @@ -1436,6 +1517,14 @@ int do_execve(char * filename, | 31529 | @@ -1441,6 +1522,14 @@ int do_execve(char * filename, |
31530 | put_files_struct(displaced); | 31530 | put_files_struct(displaced); |
31531 | return retval; | 31531 | return retval; |
31532 | 31532 | ||
@@ -31541,7 +31541,7 @@ index dd8cabd..b2adde2 100644 | |||
31541 | out: | 31541 | out: |
31542 | if (bprm->mm) { | 31542 | if (bprm->mm) { |
31543 | acct_arg_size(bprm, 0); | 31543 | acct_arg_size(bprm, 0); |
31544 | @@ -1601,6 +1690,217 @@ out: | 31544 | @@ -1606,6 +1695,217 @@ out: |
31545 | return ispipe; | 31545 | return ispipe; |
31546 | } | 31546 | } |
31547 | 31547 | ||
@@ -31759,7 +31759,7 @@ index dd8cabd..b2adde2 100644 | |||
31759 | static int zap_process(struct task_struct *start, int exit_code) | 31759 | static int zap_process(struct task_struct *start, int exit_code) |
31760 | { | 31760 | { |
31761 | struct task_struct *t; | 31761 | struct task_struct *t; |
31762 | @@ -1811,17 +2111,17 @@ static void wait_for_dump_helpers(struct file *file) | 31762 | @@ -1816,17 +2116,17 @@ static void wait_for_dump_helpers(struct file *file) |
31763 | pipe = file->f_path.dentry->d_inode->i_pipe; | 31763 | pipe = file->f_path.dentry->d_inode->i_pipe; |
31764 | 31764 | ||
31765 | pipe_lock(pipe); | 31765 | pipe_lock(pipe); |
@@ -31782,7 +31782,7 @@ index dd8cabd..b2adde2 100644 | |||
31782 | pipe_unlock(pipe); | 31782 | pipe_unlock(pipe); |
31783 | 31783 | ||
31784 | } | 31784 | } |
31785 | @@ -1929,6 +2229,10 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs) | 31785 | @@ -1934,6 +2234,10 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs) |
31786 | */ | 31786 | */ |
31787 | clear_thread_flag(TIF_SIGPENDING); | 31787 | clear_thread_flag(TIF_SIGPENDING); |
31788 | 31788 | ||
@@ -45411,10 +45411,10 @@ index 074b620..c8823dc 100644 | |||
45411 | int hasvdso; | 45411 | int hasvdso; |
45412 | }; | 45412 | }; |
45413 | 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 |
45414 | index 7b35803..e46aa64 100644 | 45414 | index c35de76..0989056 100644 |
45415 | --- a/include/linux/blkdev.h | 45415 | --- a/include/linux/blkdev.h |
45416 | +++ b/include/linux/blkdev.h | 45416 | +++ b/include/linux/blkdev.h |
45417 | @@ -1331,20 +1331,20 @@ static inline int blk_integrity_rq(struct request *rq) | 45417 | @@ -1334,20 +1334,20 @@ static inline int blk_integrity_rq(struct request *rq) |
45418 | #endif /* CONFIG_BLK_DEV_INTEGRITY */ | 45418 | #endif /* CONFIG_BLK_DEV_INTEGRITY */ |
45419 | 45419 | ||
45420 | struct block_device_operations { | 45420 | struct block_device_operations { |
@@ -47660,7 +47660,7 @@ index 7721674..ad5bcc8 100644 | |||
47660 | void anon_vma_free(struct anon_vma *); | 47660 | void anon_vma_free(struct anon_vma *); |
47661 | 47661 | ||
47662 | diff --git a/include/linux/sched.h b/include/linux/sched.h | 47662 | diff --git a/include/linux/sched.h b/include/linux/sched.h |
47663 | index 5ee397e..0424d22 100644 | 47663 | index 1272de4..bd29821 100644 |
47664 | --- a/include/linux/sched.h | 47664 | --- a/include/linux/sched.h |
47665 | +++ b/include/linux/sched.h | 47665 | +++ b/include/linux/sched.h |
47666 | @@ -100,6 +100,7 @@ struct robust_list_head; | 47666 | @@ -100,6 +100,7 @@ struct robust_list_head; |
@@ -49382,7 +49382,7 @@ index ebe4a28..19a35f3 100644 | |||
49382 | #ifdef CONFIG_MODULE_UNLOAD | 49382 | #ifdef CONFIG_MODULE_UNLOAD |
49383 | { | 49383 | { |
49384 | diff --git a/kernel/exit.c b/kernel/exit.c | 49384 | diff --git a/kernel/exit.c b/kernel/exit.c |
49385 | index d1e6789..db62916 100644 | 49385 | index 41d44c3..85cbcfe 100644 |
49386 | --- a/kernel/exit.c | 49386 | --- a/kernel/exit.c |
49387 | +++ b/kernel/exit.c | 49387 | +++ b/kernel/exit.c |
49388 | @@ -56,6 +56,10 @@ | 49388 | @@ -56,6 +56,10 @@ |
@@ -49396,7 +49396,7 @@ index d1e6789..db62916 100644 | |||
49396 | static void exit_mm(struct task_struct * tsk); | 49396 | static void exit_mm(struct task_struct * tsk); |
49397 | 49397 | ||
49398 | static void __unhash_process(struct task_struct *p, bool group_dead) | 49398 | static void __unhash_process(struct task_struct *p, bool group_dead) |
49399 | @@ -162,6 +166,8 @@ void release_task(struct task_struct * p) | 49399 | @@ -170,6 +174,8 @@ void release_task(struct task_struct * p) |
49400 | struct task_struct *leader; | 49400 | struct task_struct *leader; |
49401 | int zap_leader; | 49401 | int zap_leader; |
49402 | repeat: | 49402 | repeat: |
@@ -49405,7 +49405,7 @@ index d1e6789..db62916 100644 | |||
49405 | tracehook_prepare_release_task(p); | 49405 | tracehook_prepare_release_task(p); |
49406 | /* don't need to get the RCU readlock here - the process is dead and | 49406 | /* don't need to get the RCU readlock here - the process is dead and |
49407 | * can't be modifying its own credentials. But shut RCU-lockdep up */ | 49407 | * can't be modifying its own credentials. But shut RCU-lockdep up */ |
49408 | @@ -331,11 +337,22 @@ static void reparent_to_kthreadd(void) | 49408 | @@ -339,11 +345,22 @@ static void reparent_to_kthreadd(void) |
49409 | { | 49409 | { |
49410 | write_lock_irq(&tasklist_lock); | 49410 | write_lock_irq(&tasklist_lock); |
49411 | 49411 | ||
@@ -49428,7 +49428,7 @@ index d1e6789..db62916 100644 | |||
49428 | /* Set the exit signal to SIGCHLD so we signal init on exit */ | 49428 | /* Set the exit signal to SIGCHLD so we signal init on exit */ |
49429 | current->exit_signal = SIGCHLD; | 49429 | current->exit_signal = SIGCHLD; |
49430 | 49430 | ||
49431 | @@ -387,7 +404,7 @@ int allow_signal(int sig) | 49431 | @@ -395,7 +412,7 @@ int allow_signal(int sig) |
49432 | * know it'll be handled, so that they don't get converted to | 49432 | * know it'll be handled, so that they don't get converted to |
49433 | * SIGKILL or just silently dropped. | 49433 | * SIGKILL or just silently dropped. |
49434 | */ | 49434 | */ |
@@ -49437,7 +49437,7 @@ index d1e6789..db62916 100644 | |||
49437 | recalc_sigpending(); | 49437 | recalc_sigpending(); |
49438 | spin_unlock_irq(¤t->sighand->siglock); | 49438 | spin_unlock_irq(¤t->sighand->siglock); |
49439 | return 0; | 49439 | return 0; |
49440 | @@ -423,6 +440,17 @@ void daemonize(const char *name, ...) | 49440 | @@ -431,6 +448,17 @@ void daemonize(const char *name, ...) |
49441 | vsnprintf(current->comm, sizeof(current->comm), name, args); | 49441 | vsnprintf(current->comm, sizeof(current->comm), name, args); |
49442 | va_end(args); | 49442 | va_end(args); |
49443 | 49443 | ||
@@ -49455,7 +49455,7 @@ index d1e6789..db62916 100644 | |||
49455 | /* | 49455 | /* |
49456 | * 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 |
49457 | * 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 |
49458 | @@ -969,6 +997,9 @@ NORET_TYPE void do_exit(long code) | 49458 | @@ -977,6 +1005,9 @@ NORET_TYPE void do_exit(long code) |
49459 | tsk->exit_code = code; | 49459 | tsk->exit_code = code; |
49460 | taskstats_exit(tsk, group_dead); | 49460 | taskstats_exit(tsk, group_dead); |
49461 | 49461 | ||
@@ -49466,10 +49466,10 @@ index d1e6789..db62916 100644 | |||
49466 | 49466 | ||
49467 | if (group_dead) | 49467 | if (group_dead) |
49468 | diff --git a/kernel/fork.c b/kernel/fork.c | 49468 | diff --git a/kernel/fork.c b/kernel/fork.c |
49469 | index e96c0cd..a0bb859 100644 | 49469 | index bc0af81..23d878d 100644 |
49470 | --- a/kernel/fork.c | 49470 | --- a/kernel/fork.c |
49471 | +++ b/kernel/fork.c | 49471 | +++ b/kernel/fork.c |
49472 | @@ -276,7 +276,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) | 49472 | @@ -277,7 +277,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) |
49473 | *stackend = STACK_END_MAGIC; /* for overflow detection */ | 49473 | *stackend = STACK_END_MAGIC; /* for overflow detection */ |
49474 | 49474 | ||
49475 | #ifdef CONFIG_CC_STACKPROTECTOR | 49475 | #ifdef CONFIG_CC_STACKPROTECTOR |
@@ -49478,7 +49478,7 @@ index e96c0cd..a0bb859 100644 | |||
49478 | #endif | 49478 | #endif |
49479 | 49479 | ||
49480 | /* One for us, one for whoever does the "release_task()" (usually parent) */ | 49480 | /* One for us, one for whoever does the "release_task()" (usually parent) */ |
49481 | @@ -298,13 +298,78 @@ out: | 49481 | @@ -299,13 +299,78 @@ out: |
49482 | } | 49482 | } |
49483 | 49483 | ||
49484 | #ifdef CONFIG_MMU | 49484 | #ifdef CONFIG_MMU |
@@ -49559,7 +49559,7 @@ index e96c0cd..a0bb859 100644 | |||
49559 | 49559 | ||
49560 | down_write(&oldmm->mmap_sem); | 49560 | down_write(&oldmm->mmap_sem); |
49561 | flush_cache_dup_mm(oldmm); | 49561 | flush_cache_dup_mm(oldmm); |
49562 | @@ -316,8 +381,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | 49562 | @@ -317,8 +382,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) |
49563 | mm->locked_vm = 0; | 49563 | mm->locked_vm = 0; |
49564 | mm->mmap = NULL; | 49564 | mm->mmap = NULL; |
49565 | mm->mmap_cache = NULL; | 49565 | mm->mmap_cache = NULL; |
@@ -49570,7 +49570,7 @@ index e96c0cd..a0bb859 100644 | |||
49570 | mm->map_count = 0; | 49570 | mm->map_count = 0; |
49571 | cpumask_clear(mm_cpumask(mm)); | 49571 | cpumask_clear(mm_cpumask(mm)); |
49572 | mm->mm_rb = RB_ROOT; | 49572 | mm->mm_rb = RB_ROOT; |
49573 | @@ -330,8 +395,6 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | 49573 | @@ -331,8 +396,6 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) |
49574 | 49574 | ||
49575 | prev = NULL; | 49575 | prev = NULL; |
49576 | for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) { | 49576 | for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) { |
@@ -49579,7 +49579,7 @@ index e96c0cd..a0bb859 100644 | |||
49579 | if (mpnt->vm_flags & VM_DONTCOPY) { | 49579 | if (mpnt->vm_flags & VM_DONTCOPY) { |
49580 | long pages = vma_pages(mpnt); | 49580 | long pages = vma_pages(mpnt); |
49581 | mm->total_vm -= pages; | 49581 | mm->total_vm -= pages; |
49582 | @@ -339,56 +402,13 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | 49582 | @@ -340,56 +403,13 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) |
49583 | -pages); | 49583 | -pages); |
49584 | continue; | 49584 | continue; |
49585 | } | 49585 | } |
@@ -49640,7 +49640,7 @@ index e96c0cd..a0bb859 100644 | |||
49640 | * Link in the new vma and copy the page table entries. | 49640 | * Link in the new vma and copy the page table entries. |
49641 | */ | 49641 | */ |
49642 | *pprev = tmp; | 49642 | *pprev = tmp; |
49643 | @@ -409,6 +429,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | 49643 | @@ -410,6 +430,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) |
49644 | if (retval) | 49644 | if (retval) |
49645 | goto out; | 49645 | goto out; |
49646 | } | 49646 | } |
@@ -49672,7 +49672,7 @@ index e96c0cd..a0bb859 100644 | |||
49672 | /* a new mm has just been created */ | 49672 | /* a new mm has just been created */ |
49673 | arch_dup_mmap(oldmm, mm); | 49673 | arch_dup_mmap(oldmm, mm); |
49674 | retval = 0; | 49674 | retval = 0; |
49675 | @@ -417,14 +462,6 @@ out: | 49675 | @@ -418,14 +463,6 @@ out: |
49676 | flush_tlb_mm(oldmm); | 49676 | flush_tlb_mm(oldmm); |
49677 | up_write(&oldmm->mmap_sem); | 49677 | up_write(&oldmm->mmap_sem); |
49678 | return retval; | 49678 | return retval; |
@@ -49687,7 +49687,7 @@ index e96c0cd..a0bb859 100644 | |||
49687 | } | 49687 | } |
49688 | 49688 | ||
49689 | static inline int mm_alloc_pgd(struct mm_struct * mm) | 49689 | static inline int mm_alloc_pgd(struct mm_struct * mm) |
49690 | @@ -760,13 +797,14 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk) | 49690 | @@ -761,13 +798,14 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk) |
49691 | write_unlock(&fs->lock); | 49691 | write_unlock(&fs->lock); |
49692 | return -EAGAIN; | 49692 | return -EAGAIN; |
49693 | } | 49693 | } |
@@ -49703,7 +49703,7 @@ index e96c0cd..a0bb859 100644 | |||
49703 | return 0; | 49703 | return 0; |
49704 | } | 49704 | } |
49705 | 49705 | ||
49706 | @@ -1019,10 +1057,13 @@ static struct task_struct *copy_process(unsigned long clone_flags, | 49706 | @@ -1020,10 +1058,13 @@ static struct task_struct *copy_process(unsigned long clone_flags, |
49707 | DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); | 49707 | DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); |
49708 | #endif | 49708 | #endif |
49709 | retval = -EAGAIN; | 49709 | retval = -EAGAIN; |
@@ -49719,7 +49719,7 @@ index e96c0cd..a0bb859 100644 | |||
49719 | goto bad_fork_free; | 49719 | goto bad_fork_free; |
49720 | } | 49720 | } |
49721 | 49721 | ||
49722 | @@ -1176,6 +1217,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, | 49722 | @@ -1177,6 +1218,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, |
49723 | goto bad_fork_free_pid; | 49723 | goto bad_fork_free_pid; |
49724 | } | 49724 | } |
49725 | 49725 | ||
@@ -49728,7 +49728,7 @@ index e96c0cd..a0bb859 100644 | |||
49728 | p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? child_tidptr : NULL; | 49728 | p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? child_tidptr : NULL; |
49729 | /* | 49729 | /* |
49730 | * Clear TID on mm_release()? | 49730 | * Clear TID on mm_release()? |
49731 | @@ -1328,6 +1371,8 @@ bad_fork_cleanup_count: | 49731 | @@ -1329,6 +1372,8 @@ bad_fork_cleanup_count: |
49732 | bad_fork_free: | 49732 | bad_fork_free: |
49733 | free_task(p); | 49733 | free_task(p); |
49734 | fork_out: | 49734 | fork_out: |
@@ -49737,7 +49737,7 @@ index e96c0cd..a0bb859 100644 | |||
49737 | return ERR_PTR(retval); | 49737 | return ERR_PTR(retval); |
49738 | } | 49738 | } |
49739 | 49739 | ||
49740 | @@ -1433,6 +1478,8 @@ long do_fork(unsigned long clone_flags, | 49740 | @@ -1434,6 +1479,8 @@ long do_fork(unsigned long clone_flags, |
49741 | if (clone_flags & CLONE_PARENT_SETTID) | 49741 | if (clone_flags & CLONE_PARENT_SETTID) |
49742 | put_user(nr, parent_tidptr); | 49742 | put_user(nr, parent_tidptr); |
49743 | 49743 | ||
@@ -49746,7 +49746,7 @@ index e96c0cd..a0bb859 100644 | |||
49746 | if (clone_flags & CLONE_VFORK) { | 49746 | if (clone_flags & CLONE_VFORK) { |
49747 | p->vfork_done = &vfork; | 49747 | p->vfork_done = &vfork; |
49748 | init_completion(&vfork); | 49748 | init_completion(&vfork); |
49749 | @@ -1557,7 +1604,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp) | 49749 | @@ -1558,7 +1605,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp) |
49750 | return 0; | 49750 | return 0; |
49751 | 49751 | ||
49752 | /* don't need lock here; in the worst case we'll do useless copy */ | 49752 | /* don't need lock here; in the worst case we'll do useless copy */ |
@@ -49755,7 +49755,7 @@ index e96c0cd..a0bb859 100644 | |||
49755 | return 0; | 49755 | return 0; |
49756 | 49756 | ||
49757 | *new_fsp = copy_fs_struct(fs); | 49757 | *new_fsp = copy_fs_struct(fs); |
49758 | @@ -1680,7 +1727,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) | 49758 | @@ -1681,7 +1728,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) |
49759 | fs = current->fs; | 49759 | fs = current->fs; |
49760 | write_lock(&fs->lock); | 49760 | write_lock(&fs->lock); |
49761 | current->fs = new_fs; | 49761 | current->fs = new_fs; |
@@ -50816,7 +50816,7 @@ index b0f28dd..d380af8 100644 | |||
50816 | mutex_lock(&pm_mutex); | 50816 | mutex_lock(&pm_mutex); |
50817 | suspend_ops = ops; | 50817 | suspend_ops = ops; |
50818 | diff --git a/kernel/printk.c b/kernel/printk.c | 50818 | diff --git a/kernel/printk.c b/kernel/printk.c |
50819 | index 444b770..6a0eaf4 100644 | 50819 | index b7b7f90..dcc56c8 100644 |
50820 | --- a/kernel/printk.c | 50820 | --- a/kernel/printk.c |
50821 | +++ b/kernel/printk.c | 50821 | +++ b/kernel/printk.c |
50822 | @@ -266,6 +266,11 @@ int do_syslog(int type, char __user *buf, int len, bool from_file) | 50822 | @@ -266,6 +266,11 @@ int do_syslog(int type, char __user *buf, int len, bool from_file) |
@@ -50975,10 +50975,10 @@ index a960481..d373438 100644 | |||
50975 | WARN_ON(pendowner->pi_blocked_on->lock != lock); | 50975 | WARN_ON(pendowner->pi_blocked_on->lock != lock); |
50976 | 50976 | ||
50977 | diff --git a/kernel/sched.c b/kernel/sched.c | 50977 | diff --git a/kernel/sched.c b/kernel/sched.c |
50978 | index 837f480..b9c779e 100644 | 50978 | index d4f71b0..5a23d2f 100644 |
50979 | --- a/kernel/sched.c | 50979 | --- a/kernel/sched.c |
50980 | +++ b/kernel/sched.c | 50980 | +++ b/kernel/sched.c |
50981 | @@ -4259,6 +4259,8 @@ int can_nice(const struct task_struct *p, const int nice) | 50981 | @@ -4387,6 +4387,8 @@ int can_nice(const struct task_struct *p, const int nice) |
50982 | /* convert nice value [19,-20] to rlimit style value [1,40] */ | 50982 | /* convert nice value [19,-20] to rlimit style value [1,40] */ |
50983 | int nice_rlim = 20 - nice; | 50983 | int nice_rlim = 20 - nice; |
50984 | 50984 | ||
@@ -50987,7 +50987,7 @@ index 837f480..b9c779e 100644 | |||
50987 | return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || | 50987 | return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || |
50988 | capable(CAP_SYS_NICE)); | 50988 | capable(CAP_SYS_NICE)); |
50989 | } | 50989 | } |
50990 | @@ -4292,7 +4294,8 @@ SYSCALL_DEFINE1(nice, int, increment) | 50990 | @@ -4420,7 +4422,8 @@ SYSCALL_DEFINE1(nice, int, increment) |
50991 | if (nice > 19) | 50991 | if (nice > 19) |
50992 | nice = 19; | 50992 | nice = 19; |
50993 | 50993 | ||
@@ -50997,7 +50997,7 @@ index 837f480..b9c779e 100644 | |||
50997 | return -EPERM; | 50997 | return -EPERM; |
50998 | 50998 | ||
50999 | retval = security_task_setnice(current, nice); | 50999 | retval = security_task_setnice(current, nice); |
51000 | @@ -4439,6 +4442,7 @@ recheck: | 51000 | @@ -4567,6 +4570,7 @@ recheck: |
51001 | rlim_rtprio = task_rlimit(p, RLIMIT_RTPRIO); | 51001 | rlim_rtprio = task_rlimit(p, RLIMIT_RTPRIO); |
51002 | unlock_task_sighand(p, &flags); | 51002 | unlock_task_sighand(p, &flags); |
51003 | 51003 | ||
@@ -51005,7 +51005,7 @@ index 837f480..b9c779e 100644 | |||
51005 | /* can't set/change the rt policy */ | 51005 | /* can't set/change the rt policy */ |
51006 | if (policy != p->policy && !rlim_rtprio) | 51006 | if (policy != p->policy && !rlim_rtprio) |
51007 | return -EPERM; | 51007 | return -EPERM; |
51008 | @@ -6593,7 +6597,7 @@ static void init_sched_groups_power(int cpu, struct sched_domain *sd) | 51008 | @@ -6721,7 +6725,7 @@ static void init_sched_groups_power(int cpu, struct sched_domain *sd) |
51009 | long power; | 51009 | long power; |
51010 | int weight; | 51010 | int weight; |
51011 | 51011 | ||
@@ -51622,10 +51622,10 @@ index 2f3b585..4ae39fa 100644 | |||
51622 | return -ENOMEM; | 51622 | return -ENOMEM; |
51623 | return 0; | 51623 | return 0; |
51624 | diff --git a/kernel/timer.c b/kernel/timer.c | 51624 | diff --git a/kernel/timer.c b/kernel/timer.c |
51625 | index ee305c8..91cbbfe 100644 | 51625 | index f7dec45..ffbc530 100644 |
51626 | --- a/kernel/timer.c | 51626 | --- a/kernel/timer.c |
51627 | +++ b/kernel/timer.c | 51627 | +++ b/kernel/timer.c |
51628 | @@ -1272,7 +1272,7 @@ void update_process_times(int user_tick) | 51628 | @@ -1278,7 +1278,7 @@ void update_process_times(int user_tick) |
51629 | /* | 51629 | /* |
51630 | * This function runs timers and the timer-tq in bottom half context. | 51630 | * This function runs timers and the timer-tq in bottom half context. |
51631 | */ | 51631 | */ |
@@ -51673,10 +51673,10 @@ index 6cd7334..3b75866 100644 | |||
51673 | struct buffer_page *page, struct list_head *list) | 51673 | struct buffer_page *page, struct list_head *list) |
51674 | { | 51674 | { |
51675 | diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c | 51675 | diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c |
51676 | index 086d363..e751991 100644 | 51676 | index 755d3ee..0e1e804 100644 |
51677 | --- a/kernel/trace/trace.c | 51677 | --- a/kernel/trace/trace.c |
51678 | +++ b/kernel/trace/trace.c | 51678 | +++ b/kernel/trace/trace.c |
51679 | @@ -3965,10 +3965,9 @@ static const struct file_operations tracing_dyn_info_fops = { | 51679 | @@ -3973,10 +3973,9 @@ static const struct file_operations tracing_dyn_info_fops = { |
51680 | }; | 51680 | }; |
51681 | #endif | 51681 | #endif |
51682 | 51682 | ||
@@ -51688,7 +51688,7 @@ index 086d363..e751991 100644 | |||
51688 | static int once; | 51688 | static int once; |
51689 | 51689 | ||
51690 | if (d_tracer) | 51690 | if (d_tracer) |
51691 | @@ -3988,10 +3987,9 @@ struct dentry *tracing_init_dentry(void) | 51691 | @@ -3996,10 +3995,9 @@ struct dentry *tracing_init_dentry(void) |
51692 | return d_tracer; | 51692 | return d_tracer; |
51693 | } | 51693 | } |
51694 | 51694 | ||
@@ -52999,7 +52999,7 @@ index b70919c..9935a98 100644 | |||
52999 | capable(CAP_IPC_LOCK)) | 52999 | capable(CAP_IPC_LOCK)) |
53000 | ret = do_mlockall(flags); | 53000 | ret = do_mlockall(flags); |
53001 | diff --git a/mm/mmap.c b/mm/mmap.c | 53001 | diff --git a/mm/mmap.c b/mm/mmap.c |
53002 | index 3a94362..b34ead4 100644 | 53002 | index 073b39d..21d6dac 100644 |
53003 | --- a/mm/mmap.c | 53003 | --- a/mm/mmap.c |
53004 | +++ b/mm/mmap.c | 53004 | +++ b/mm/mmap.c |
53005 | @@ -44,6 +44,16 @@ | 53005 | @@ -44,6 +44,16 @@ |
@@ -54215,7 +54215,7 @@ index 3a94362..b34ead4 100644 | |||
54215 | if (cur + npages > lim) | 54215 | if (cur + npages > lim) |
54216 | return 0; | 54216 | return 0; |
54217 | return 1; | 54217 | return 1; |
54218 | @@ -2455,6 +2930,17 @@ int install_special_mapping(struct mm_struct *mm, | 54218 | @@ -2456,6 +2931,17 @@ int install_special_mapping(struct mm_struct *mm, |
54219 | vma->vm_start = addr; | 54219 | vma->vm_start = addr; |
54220 | vma->vm_end = addr + len; | 54220 | vma->vm_end = addr + len; |
54221 | 54221 | ||
@@ -55769,27 +55769,20 @@ index d29e582..028a383 100644 | |||
55769 | #undef __HANDLE_ITEM | 55769 | #undef __HANDLE_ITEM |
55770 | } | 55770 | } |
55771 | diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c | 55771 | diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c |
55772 | index cfdfd7e..763fd0b 100644 | 55772 | index 6e2371a..763fd0b 100644 |
55773 | --- a/net/ax25/af_ax25.c | 55773 | --- a/net/ax25/af_ax25.c |
55774 | +++ b/net/ax25/af_ax25.c | 55774 | +++ b/net/ax25/af_ax25.c |
55775 | @@ -1392,6 +1392,7 @@ static int ax25_getname(struct socket *sock, struct sockaddr *uaddr, | 55775 | @@ -1392,7 +1392,7 @@ static int ax25_getname(struct socket *sock, struct sockaddr *uaddr, |
55776 | ax25_cb *ax25; | 55776 | ax25_cb *ax25; |
55777 | int err = 0; | 55777 | int err = 0; |
55778 | 55778 | ||
55779 | - memset(fsa, 0, sizeof(fsa)); | ||
55779 | + memset(fsa, 0, sizeof(*fsa)); | 55780 | + memset(fsa, 0, sizeof(*fsa)); |
55780 | lock_sock(sk); | 55781 | lock_sock(sk); |
55781 | ax25 = ax25_sk(sk); | 55782 | ax25 = ax25_sk(sk); |
55782 | 55783 | ||
55783 | @@ -1403,7 +1404,6 @@ static int ax25_getname(struct socket *sock, struct sockaddr *uaddr, | ||
55784 | |||
55785 | fsa->fsa_ax25.sax25_family = AF_AX25; | ||
55786 | fsa->fsa_ax25.sax25_call = ax25->dest_addr; | ||
55787 | - fsa->fsa_ax25.sax25_ndigis = 0; | ||
55788 | |||
55789 | if (ax25->digipeat != NULL) { | ||
55790 | ndigi = ax25->digipeat->ndigi; | ||
55791 | diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c | 55784 | diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c |
55792 | index 27ae946..cfb0d8f 100644 | 55785 | index 5a9bcfe..997b935 100644 |
55793 | --- a/net/bridge/br_multicast.c | 55786 | --- a/net/bridge/br_multicast.c |
55794 | +++ b/net/bridge/br_multicast.c | 55787 | +++ b/net/bridge/br_multicast.c |
55795 | @@ -1461,7 +1461,7 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br, | 55788 | @@ -1461,7 +1461,7 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br, |
@@ -55876,10 +55869,10 @@ index 99e7052..1fddc80 100644 | |||
55876 | .store = rx_queue_attr_store, | 55869 | .store = rx_queue_attr_store, |
55877 | }; | 55870 | }; |
55878 | diff --git a/net/core/sock.c b/net/core/sock.c | 55871 | diff --git a/net/core/sock.c b/net/core/sock.c |
55879 | index 2cf7f9f..3d9bb13 100644 | 55872 | index e734700..ec5ceae 100644 |
55880 | --- a/net/core/sock.c | 55873 | --- a/net/core/sock.c |
55881 | +++ b/net/core/sock.c | 55874 | +++ b/net/core/sock.c |
55882 | @@ -915,7 +915,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname, | 55875 | @@ -930,7 +930,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname, |
55883 | return -ENOTCONN; | 55876 | return -ENOTCONN; |
55884 | if (lv < len) | 55877 | if (lv < len) |
55885 | return -EINVAL; | 55878 | return -EINVAL; |
@@ -55888,7 +55881,7 @@ index 2cf7f9f..3d9bb13 100644 | |||
55888 | return -EFAULT; | 55881 | return -EFAULT; |
55889 | goto lenout; | 55882 | goto lenout; |
55890 | } | 55883 | } |
55891 | @@ -948,7 +948,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname, | 55884 | @@ -963,7 +963,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname, |
55892 | 55885 | ||
55893 | if (len > lv) | 55886 | if (len > lv) |
55894 | len = lv; | 55887 | len = lv; |
@@ -56056,7 +56049,7 @@ index 0189deb..f463d6bad 100644 | |||
56056 | ts = rt->peer->tcp_ts; | 56049 | ts = rt->peer->tcp_ts; |
56057 | tsage = get_seconds() - rt->peer->tcp_ts_stamp; | 56050 | tsage = get_seconds() - rt->peer->tcp_ts_stamp; |
56058 | diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c | 56051 | diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c |
56059 | index fe193e5..d764db2 100644 | 56052 | index 163a5c1..0dcc52d 100644 |
56060 | --- a/net/ipv4/tcp_ipv4.c | 56053 | --- a/net/ipv4/tcp_ipv4.c |
56061 | +++ b/net/ipv4/tcp_ipv4.c | 56054 | +++ b/net/ipv4/tcp_ipv4.c |
56062 | @@ -85,6 +85,9 @@ | 56055 | @@ -85,6 +85,9 @@ |
@@ -56069,7 +56062,7 @@ index fe193e5..d764db2 100644 | |||
56069 | 56062 | ||
56070 | #ifdef CONFIG_TCP_MD5SIG | 56063 | #ifdef CONFIG_TCP_MD5SIG |
56071 | static struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk, | 56064 | static struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk, |
56072 | @@ -1593,6 +1596,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) | 56065 | @@ -1591,6 +1594,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) |
56073 | return 0; | 56066 | return 0; |
56074 | 56067 | ||
56075 | reset: | 56068 | reset: |
@@ -56079,7 +56072,7 @@ index fe193e5..d764db2 100644 | |||
56079 | tcp_v4_send_reset(rsk, skb); | 56072 | tcp_v4_send_reset(rsk, skb); |
56080 | discard: | 56073 | discard: |
56081 | kfree_skb(skb); | 56074 | kfree_skb(skb); |
56082 | @@ -1654,12 +1660,19 @@ int tcp_v4_rcv(struct sk_buff *skb) | 56075 | @@ -1652,12 +1658,19 @@ int tcp_v4_rcv(struct sk_buff *skb) |
56083 | TCP_SKB_CB(skb)->sacked = 0; | 56076 | TCP_SKB_CB(skb)->sacked = 0; |
56084 | 56077 | ||
56085 | sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest); | 56078 | sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest); |
@@ -56102,7 +56095,7 @@ index fe193e5..d764db2 100644 | |||
56102 | 56095 | ||
56103 | if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) { | 56096 | if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) { |
56104 | NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP); | 56097 | NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP); |
56105 | @@ -1709,6 +1722,10 @@ no_tcp_socket: | 56098 | @@ -1707,6 +1720,10 @@ no_tcp_socket: |
56106 | bad_packet: | 56099 | bad_packet: |
56107 | TCP_INC_STATS_BH(net, TCP_MIB_INERRS); | 56100 | TCP_INC_STATS_BH(net, TCP_MIB_INERRS); |
56108 | } else { | 56101 | } else { |
@@ -56113,7 +56106,7 @@ index fe193e5..d764db2 100644 | |||
56113 | tcp_v4_send_reset(NULL, skb); | 56106 | tcp_v4_send_reset(NULL, skb); |
56114 | } | 56107 | } |
56115 | 56108 | ||
56116 | @@ -2316,7 +2333,11 @@ static void get_openreq4(struct sock *sk, struct request_sock *req, | 56109 | @@ -2314,7 +2331,11 @@ static void get_openreq4(struct sock *sk, struct request_sock *req, |
56117 | 0, /* non standard timer */ | 56110 | 0, /* non standard timer */ |
56118 | 0, /* open_requests have no inode */ | 56111 | 0, /* open_requests have no inode */ |
56119 | atomic_read(&sk->sk_refcnt), | 56112 | atomic_read(&sk->sk_refcnt), |
@@ -56125,7 +56118,7 @@ index fe193e5..d764db2 100644 | |||
56125 | len); | 56118 | len); |
56126 | } | 56119 | } |
56127 | 56120 | ||
56128 | @@ -2366,7 +2387,12 @@ static void get_tcp4_sock(struct sock *sk, struct seq_file *f, int i, int *len) | 56121 | @@ -2364,7 +2385,12 @@ static void get_tcp4_sock(struct sock *sk, struct seq_file *f, int i, int *len) |
56129 | sock_i_uid(sk), | 56122 | sock_i_uid(sk), |
56130 | icsk->icsk_probes_out, | 56123 | icsk->icsk_probes_out, |
56131 | sock_i_ino(sk), | 56124 | sock_i_ino(sk), |
@@ -56139,7 +56132,7 @@ index fe193e5..d764db2 100644 | |||
56139 | jiffies_to_clock_t(icsk->icsk_rto), | 56132 | jiffies_to_clock_t(icsk->icsk_rto), |
56140 | jiffies_to_clock_t(icsk->icsk_ack.ato), | 56133 | jiffies_to_clock_t(icsk->icsk_ack.ato), |
56141 | (icsk->icsk_ack.quick << 1) | icsk->icsk_ack.pingpong, | 56134 | (icsk->icsk_ack.quick << 1) | icsk->icsk_ack.pingpong, |
56142 | @@ -2394,7 +2420,13 @@ static void get_timewait4_sock(struct inet_timewait_sock *tw, | 56135 | @@ -2392,7 +2418,13 @@ static void get_timewait4_sock(struct inet_timewait_sock *tw, |
56143 | " %02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %p%n", | 56136 | " %02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %p%n", |
56144 | i, src, srcp, dest, destp, tw->tw_substate, 0, 0, | 56137 | i, src, srcp, dest, destp, tw->tw_substate, 0, 0, |
56145 | 3, jiffies_to_clock_t(ttd), 0, 0, 0, 0, | 56138 | 3, jiffies_to_clock_t(ttd), 0, 0, 0, 0, |
@@ -56770,7 +56763,7 @@ index 47438b4..bee0611 100644 | |||
56770 | 56763 | ||
56771 | return p; | 56764 | return p; |
56772 | diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c | 56765 | diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c |
56773 | index 680bcb7..bd3d669 100644 | 56766 | index 1ec650b..c5bbf4f 100644 |
56774 | --- a/net/mac80211/tx.c | 56767 | --- a/net/mac80211/tx.c |
56775 | +++ b/net/mac80211/tx.c | 56768 | +++ b/net/mac80211/tx.c |
56776 | @@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr, | 56769 | @@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr, |
@@ -56932,38 +56925,18 @@ index 06cb027..6faef38 100644 | |||
56932 | *uaddr_len = sizeof(struct sockaddr_ax25); | 56925 | *uaddr_len = sizeof(struct sockaddr_ax25); |
56933 | } | 56926 | } |
56934 | diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c | 56927 | diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c |
56935 | index 2078a27..3f1f205 100644 | 56928 | index 2f68bbd..cd27681 100644 |
56936 | --- a/net/packet/af_packet.c | 56929 | --- a/net/packet/af_packet.c |
56937 | +++ b/net/packet/af_packet.c | 56930 | +++ b/net/packet/af_packet.c |
56938 | @@ -1595,8 +1595,9 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock, | 56931 | @@ -1597,6 +1597,7 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock, |
56939 | |||
56940 | err = -EINVAL; | ||
56941 | vnet_hdr_len = sizeof(vnet_hdr); | 56932 | vnet_hdr_len = sizeof(vnet_hdr); |
56942 | - if ((len -= vnet_hdr_len) < 0) | 56933 | if (len < vnet_hdr_len) |
56943 | + if (len < vnet_hdr_len) | ||
56944 | goto out_free; | 56934 | goto out_free; |
56945 | + len -= vnet_hdr_len; | 56935 | + len -= vnet_hdr_len; |
56946 | 56936 | ||
56947 | if (skb_is_gso(skb)) { | 56937 | len -= vnet_hdr_len; |
56948 | struct skb_shared_info *sinfo = skb_shinfo(skb); | 56938 | |
56949 | @@ -1704,7 +1705,7 @@ static int packet_getname_spkt(struct socket *sock, struct sockaddr *uaddr, | 56939 | @@ -2096,7 +2097,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, |
56950 | rcu_read_lock(); | ||
56951 | dev = dev_get_by_index_rcu(sock_net(sk), pkt_sk(sk)->ifindex); | ||
56952 | if (dev) | ||
56953 | - strlcpy(uaddr->sa_data, dev->name, 15); | ||
56954 | + strncpy(uaddr->sa_data, dev->name, 14); | ||
56955 | else | ||
56956 | memset(uaddr->sa_data, 0, 14); | ||
56957 | rcu_read_unlock(); | ||
56958 | @@ -1727,6 +1728,7 @@ static int packet_getname(struct socket *sock, struct sockaddr *uaddr, | ||
56959 | sll->sll_family = AF_PACKET; | ||
56960 | sll->sll_ifindex = po->ifindex; | ||
56961 | sll->sll_protocol = po->num; | ||
56962 | + sll->sll_pkttype = 0; | ||
56963 | rcu_read_lock(); | ||
56964 | dev = dev_get_by_index_rcu(sock_net(sk), po->ifindex); | ||
56965 | if (dev) { | ||
56966 | @@ -2093,7 +2095,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, | ||
56967 | case PACKET_HDRLEN: | 56940 | case PACKET_HDRLEN: |
56968 | if (len > sizeof(int)) | 56941 | if (len > sizeof(int)) |
56969 | len = sizeof(int); | 56942 | len = sizeof(int); |
@@ -56972,7 +56945,7 @@ index 2078a27..3f1f205 100644 | |||
56972 | return -EFAULT; | 56945 | return -EFAULT; |
56973 | switch (val) { | 56946 | switch (val) { |
56974 | case TPACKET_V1: | 56947 | case TPACKET_V1: |
56975 | @@ -2125,7 +2127,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, | 56948 | @@ -2128,7 +2129,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, |
56976 | 56949 | ||
56977 | if (put_user(len, optlen)) | 56950 | if (put_user(len, optlen)) |
56978 | return -EFAULT; | 56951 | return -EFAULT; |
@@ -56981,7 +56954,7 @@ index 2078a27..3f1f205 100644 | |||
56981 | return -EFAULT; | 56954 | return -EFAULT; |
56982 | return 0; | 56955 | return 0; |
56983 | } | 56956 | } |
56984 | @@ -2604,7 +2606,11 @@ static int packet_seq_show(struct seq_file *seq, void *v) | 56957 | @@ -2607,7 +2608,11 @@ static int packet_seq_show(struct seq_file *seq, void *v) |
56985 | 56958 | ||
56986 | seq_printf(seq, | 56959 | seq_printf(seq, |
56987 | "%p %-6d %-4d %04x %-5d %1d %-6u %-6u %-6lu\n", | 56960 | "%p %-6d %-4d %04x %-5d %1d %-6u %-6u %-6lu\n", |
@@ -57285,7 +57258,7 @@ index 66e889b..ce91238 100644 | |||
57285 | } | 57258 | } |
57286 | 57259 | ||
57287 | diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c | 57260 | diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c |
57288 | index 617bea4..dae3c79 100644 | 57261 | index d63e7a2..6cbdf98 100644 |
57289 | --- a/net/unix/af_unix.c | 57262 | --- a/net/unix/af_unix.c |
57290 | +++ b/net/unix/af_unix.c | 57263 | +++ b/net/unix/af_unix.c |
57291 | @@ -745,6 +745,12 @@ static struct sock *unix_find_other(struct net *net, | 57264 | @@ -745,6 +745,12 @@ static struct sock *unix_find_other(struct net *net, |
@@ -57345,7 +57318,7 @@ index 617bea4..dae3c79 100644 | |||
57345 | list = &unix_socket_table[addr->hash]; | 57318 | list = &unix_socket_table[addr->hash]; |
57346 | } else { | 57319 | } else { |
57347 | list = &unix_socket_table[dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)]; | 57320 | list = &unix_socket_table[dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)]; |
57348 | @@ -2170,7 +2194,11 @@ static int unix_seq_show(struct seq_file *seq, void *v) | 57321 | @@ -2206,7 +2230,11 @@ static int unix_seq_show(struct seq_file *seq, void *v) |
57349 | unix_state_lock(s); | 57322 | unix_state_lock(s); |
57350 | 57323 | ||
57351 | seq_printf(seq, "%p: %08X %08X %08X %04X %02X %5lu", | 57324 | seq_printf(seq, "%p: %08X %08X %08X %04X %02X %5lu", |