aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-02-24 11:29:00 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-02-24 12:09:38 +0000
commit66f762db133ac258abede380dd5303d7aa173fa1 (patch)
tree1b522a5a103b16c23c6e23d1d20edc92d24a8cba
parent11442505dc8d047c2e144557be4f910b27f8f4f9 (diff)
downloadalpine_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/APKBUILD7
-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
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=2.6.35.10 5pkgver=2.6.35.11
6_kernver=2.6.35 6_kernver=2.6.35
7pkgrel=0 7pkgrel=0
8pkgdesc="Linux kernel with grsecurity" 8pkgdesc="Linux kernel with grsecurity"
9url=http://grsecurity.net 9url=http://grsecurity.net
10arch="all"
10depends="mkinitfs linux-firmware" 11depends="mkinitfs linux-firmware"
11makedepends="perl installkernel bash" 12makedepends="perl installkernel bash"
12options="!strip" 13options="!strip"
@@ -146,8 +147,8 @@ firmware() {
146} 147}
147 148
148md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 149md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2
1490741b3219a009fdfc41c766416007fcf patch-2.6.35.10.bz2 150573170b7d56d30d06d26b705d4794615 patch-2.6.35.11.bz2
1503855791bfc2ee4fff05fc3c783a3a477 grsecurity-2.2.0-2.6.35.10-unofficial.patch 151a3b572360778b04f99ff9c7854d5d60a grsecurity-2.2.0-2.6.35.11-unofficial.patch
151eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch 152eed5bd98c0a3b976891c897763eceff5 0001-xfrm-use-gre-key-as-flow-upper-protocol-info.patch
152ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch 153ea7a7eb2775b71ae5ef24d029a4905bd xfrm-fix-gre-key-endianess.patch
153776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch 154776adeeb5272093574f8836c5037dd7d 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
151diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt 151diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
152index 2b2407d..4ebd036 100644 152index 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]
168diff --git a/Makefile b/Makefile 168diff --git a/Makefile b/Makefile
169index 6538501..6616857 100644 169index 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);
9019diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h 9019diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
9020index 7e5c6a6..7093da3 100644 9020index 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,
10515diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c 10515diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
10516index ad1515d..96832b6 100644 10516index 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.
13294diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c 13294diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c
13295index 3561702..f4807b7 100644 13295index 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)
14152diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c 14152diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
14153index 821ee1b..e29b497 100644 14153index 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);
15416diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c 15416diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
15417index 37e68fc..121259e 100644 15417index 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
20570diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile 20570diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
20571index 6b4ffed..f55f243 100644 20571index 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)) {
25447diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c 25447diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
25448index a718463..2569728 100644 25448index 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
26225diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h 26225diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
26226index 8c53926..5259b1e 100644 26226index 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
26556diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c 26556diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
26557index 9924ea2..498330c 100644 26557index 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),
26569diff --git a/drivers/md/md.c b/drivers/md/md.c 26569diff --git a/drivers/md/md.c b/drivers/md/md.c
26570index 7de96c2..d26e244 100644 26570index 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
28414diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c 28414diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
28415index be1a8fc..f67861f 100644 28415index 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))
31270diff --git a/fs/exec.c b/fs/exec.c 31270diff --git a/fs/exec.c b/fs/exec.c
31271index dd8cabd..b2adde2 100644 31271index 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 };
45413diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h 45413diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
45414index 7b35803..e46aa64 100644 45414index 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
47662diff --git a/include/linux/sched.h b/include/linux/sched.h 47662diff --git a/include/linux/sched.h b/include/linux/sched.h
47663index 5ee397e..0424d22 100644 47663index 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 {
49384diff --git a/kernel/exit.c b/kernel/exit.c 49384diff --git a/kernel/exit.c b/kernel/exit.c
49385index d1e6789..db62916 100644 49385index 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(&current->sighand->siglock); 49438 spin_unlock_irq(&current->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)
49468diff --git a/kernel/fork.c b/kernel/fork.c 49468diff --git a/kernel/fork.c b/kernel/fork.c
49469index e96c0cd..a0bb859 100644 49469index 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;
50818diff --git a/kernel/printk.c b/kernel/printk.c 50818diff --git a/kernel/printk.c b/kernel/printk.c
50819index 444b770..6a0eaf4 100644 50819index 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
50977diff --git a/kernel/sched.c b/kernel/sched.c 50977diff --git a/kernel/sched.c b/kernel/sched.c
50978index 837f480..b9c779e 100644 50978index 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;
51624diff --git a/kernel/timer.c b/kernel/timer.c 51624diff --git a/kernel/timer.c b/kernel/timer.c
51625index ee305c8..91cbbfe 100644 51625index 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 {
51675diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c 51675diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
51676index 086d363..e751991 100644 51676index 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);
53001diff --git a/mm/mmap.c b/mm/mmap.c 53001diff --git a/mm/mmap.c b/mm/mmap.c
53002index 3a94362..b34ead4 100644 53002index 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 }
55771diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c 55771diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
55772index cfdfd7e..763fd0b 100644 55772index 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;
55791diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c 55784diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
55792index 27ae946..cfb0d8f 100644 55785index 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 };
55878diff --git a/net/core/sock.c b/net/core/sock.c 55871diff --git a/net/core/sock.c b/net/core/sock.c
55879index 2cf7f9f..3d9bb13 100644 55872index 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;
56058diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c 56051diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
56059index fe193e5..d764db2 100644 56052index 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;
56772diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c 56765diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
56773index 680bcb7..bd3d669 100644 56766index 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 }
56934diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c 56927diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
56935index 2078a27..3f1f205 100644 56928index 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
57287diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c 57260diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
57288index 617bea4..dae3c79 100644 57261index 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",