diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-10-21 07:27:12 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-10-22 13:33:51 +0000 |
commit | 32ea910f77a26b6f746215c082d4859d24ec4251 (patch) | |
tree | c20afd5e61b6e21ccbe7c1f0070ac3481f8d7bbe /main/linux-grsec | |
parent | 03dba8682dd9206b63fdf269124b51eb0455fa69 (diff) | |
download | aports-32ea910f77a26b6f746215c082d4859d24ec4251.tar.bz2 aports-32ea910f77a26b6f746215c082d4859d24ec4251.tar.xz |
main/linux-gsrec: upgrade to 3.10.17
Diffstat (limited to 'main/linux-grsec')
-rw-r--r-- | main/linux-grsec/APKBUILD | 14 | ||||
-rw-r--r-- | main/linux-grsec/grsecurity-2.9.1-3.10.17-unofficial.patch (renamed from main/linux-grsec/grsecurity-2.9.1-3.10.16-unofficial.patch) | 113 |
2 files changed, 60 insertions, 67 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD index c38020a873..4c4350cff9 100644 --- a/main/linux-grsec/APKBUILD +++ b/main/linux-grsec/APKBUILD @@ -2,7 +2,7 @@ _flavor=grsec pkgname=linux-${_flavor} -pkgver=3.10.16 +pkgver=3.10.17 case $pkgver in *.*.*) _kernver=${pkgver%.*};; *.*) _kernver=${pkgver};; @@ -150,8 +150,8 @@ dev() { } md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz -029a48f796bcf8c36fad09cfe689be5a patch-3.10.16.xz -b2c8994b3b2fa2a2da739f8c78d60fee grsecurity-2.9.1-3.10.16-unofficial.patch +8431ee4e2467fdfde47e31701813a265 patch-3.10.17.xz +6894537e9ccc2b296b27b42c39c64b31 grsecurity-2.9.1-3.10.17-unofficial.patch a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch @@ -162,8 +162,8 @@ c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch 866e6c4daed45d563829804f8ad50ed9 kernelconfig.x86 272aaddd0a19a5052208bc25551995a3 kernelconfig.x86_64" sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz -115e02fe0a38eefdb1e4b1fa5e5878cb6b007db08e18901c2c4fb20a279790f4 patch-3.10.16.xz -89beaae3759cc53a3b061e48bbcdfaf53d7333959c6a22090aaf40eaf540e2e0 grsecurity-2.9.1-3.10.16-unofficial.patch +5552fc6f24a56d13d603ddc7759114a7b52e92ad2fb84a23a1b80b37b739a33b patch-3.10.17.xz +8e82e71c0da392a601a952aa712b56a5116fcf626c19d69ae9d86dda2d200852 grsecurity-2.9.1-3.10.17-unofficial.patch 6af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 0985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch @@ -174,8 +174,8 @@ fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use- 7fd28634998ef1fddafed5f2516e902924245d2464b9e86476bfaa55ccfc3bc3 kernelconfig.x86 f2843ae4f9b3e3c27f3138ce4b740c2803bdab0c7a910c662d951843803b9554 kernelconfig.x86_64" sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz -34cf05008f8992b7cd4d4f34b13a6a55df75ce53328eef10119069f5b60e89fce18d786bdf47ed60083535917e8113a4b0da66530b9b783cfef271b433c0f58b patch-3.10.16.xz -474ea9a25e1356772b079db354108dd14755853f89003996af0482a1a21b83a6e592167a7e4e456afd33d4bddef5f2165f38c0e5b2ec5c0a2dec53a8ebd7c6e9 grsecurity-2.9.1-3.10.16-unofficial.patch +38f9085d67d59cb37c32db69b84714a96f327fe74b69bb4a7304861ea6e474614216067ee08093f41739ce803b83a70400c83f06c695cb1114cf41c0b2dc7aa7 patch-3.10.17.xz +6d27a986f32f42b12c4291ebb4b7365d8cd90b604ee9bc57344b9f9764efd7c5aae89c5ab4977878a24ae4b6e812c1db6030c3451bd15fdb2ea01a2a50e2ce41 grsecurity-2.9.1-3.10.17-unofficial.patch 81e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 51ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 57d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch diff --git a/main/linux-grsec/grsecurity-2.9.1-3.10.16-unofficial.patch b/main/linux-grsec/grsecurity-2.9.1-3.10.17-unofficial.patch index e11ab9abf4..3a78478212 100644 --- a/main/linux-grsec/grsecurity-2.9.1-3.10.16-unofficial.patch +++ b/main/linux-grsec/grsecurity-2.9.1-3.10.17-unofficial.patch @@ -281,7 +281,7 @@ index 2fe6e76..889ee23 100644 pcd. [PARIDE] diff --git a/Makefile b/Makefile -index e9528d2..0c2aa58 100644 +index 5c7d3d6..aa1c9c3 100644 --- a/Makefile +++ b/Makefile @@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ @@ -2890,7 +2890,7 @@ index 1f2740e..b36e225 100644 }; diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c -index 5bc2615..dcd439f 100644 +index ab1fe3b..dcd439f 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -223,6 +223,7 @@ void machine_power_off(void) @@ -2943,15 +2943,7 @@ index 5bc2615..dcd439f 100644 return 0; } arch_initcall(gate_vma_init); -@@ -466,48 +461,23 @@ int in_gate_area_no_mm(unsigned long addr) - { - return in_gate_area(NULL, addr); - } --#define is_gate_vma(vma) ((vma) = &gate_vma) -+#define is_gate_vma(vma) ((vma) == &gate_vma) - #else - #define is_gate_vma(vma) 0 - #endif +@@ -473,41 +468,16 @@ int in_gate_area_no_mm(unsigned long addr) const char *arch_vma_name(struct vm_area_struct *vma) { @@ -7347,7 +7339,7 @@ index 5dfd248..64914ac 100644 return addr; } diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c -index 04e47c6..7a8faf6 100644 +index b3f87a3..5d5d03d 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -727,9 +727,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) @@ -15171,7 +15163,7 @@ index 59c6c40..5e0b22c 100644 struct compat_timespec { compat_time_t tv_sec; diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h -index e99ac27..10d834e 100644 +index 4af181d..eb8011f 100644 --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h @@ -203,7 +203,7 @@ @@ -20774,10 +20766,10 @@ index addb207..99635fa 100644 +EXPORT_SYMBOL(pax_check_alloca); +#endif diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c -index d32abea..74daf4f 100644 +index 174da5f..5e55606 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c -@@ -800,8 +800,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void) +@@ -803,8 +803,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void) static void early_panic(char *msg) { @@ -25364,7 +25356,7 @@ index f2bb9c9..bed145d7 100644 1: diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 56f7fcf..2cfe4f1 100644 +index 91964c6..bbab1da 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -110,6 +110,7 @@ @@ -25429,16 +25421,16 @@ index 56f7fcf..2cfe4f1 100644 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */ int bootloader_type, bootloader_version; -@@ -444,7 +483,7 @@ static void __init parse_setup_data(void) +@@ -442,7 +481,7 @@ static void __init parse_setup_data(void) - switch (data->type) { + switch (data_type) { case SETUP_E820_EXT: -- parse_e820_ext(data); -+ parse_e820_ext((struct setup_data __force_kernel *)data); +- parse_e820_ext(pa_data, data_len); ++ parse_e820_ext((struct setup_data __force_kernel *)pa_data, data_len); break; case SETUP_DTB: add_dtb(pa_data); -@@ -771,7 +810,7 @@ static void __init trim_bios_range(void) +@@ -768,7 +807,7 @@ static void __init trim_bios_range(void) * area (640->1Mb) as ram even though it is not. * take them out. */ @@ -25447,7 +25439,7 @@ index 56f7fcf..2cfe4f1 100644 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); } -@@ -779,7 +818,7 @@ static void __init trim_bios_range(void) +@@ -776,7 +815,7 @@ static void __init trim_bios_range(void) /* called before trim_bios_range() to spare extra sanitize */ static void __init e820_add_kernel_range(void) { @@ -25456,7 +25448,7 @@ index 56f7fcf..2cfe4f1 100644 u64 size = __pa_symbol(_end) - start; /* -@@ -841,8 +880,12 @@ static void __init trim_low_memory_range(void) +@@ -838,8 +877,12 @@ static void __init trim_low_memory_range(void) void __init setup_arch(char **cmdline_p) { @@ -25469,7 +25461,7 @@ index 56f7fcf..2cfe4f1 100644 early_reserve_initrd(); -@@ -934,14 +977,14 @@ void __init setup_arch(char **cmdline_p) +@@ -931,14 +974,14 @@ void __init setup_arch(char **cmdline_p) if (!boot_params.hdr.root_flags) root_mountflags &= ~MS_RDONLY; @@ -37374,7 +37366,7 @@ index 5c5cc00..ac9edb7 100644 if (cmd != SIOCWANDEV) diff --git a/drivers/char/random.c b/drivers/char/random.c -index 35487e8..dac8bd1 100644 +index 81eefa1..219a156 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -272,8 +272,13 @@ @@ -39012,10 +39004,10 @@ index c8d16a6..ca71b5e 100644 iir = I915_READ(IIR); diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 2667d6d..410dc80 100644 +index ab95259..8898d43 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -8939,13 +8939,13 @@ struct intel_quirk { +@@ -8935,13 +8935,13 @@ struct intel_quirk { int subsystem_vendor; int subsystem_device; void (*hook)(struct drm_device *dev); @@ -39031,7 +39023,7 @@ index 2667d6d..410dc80 100644 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id) { -@@ -8953,18 +8953,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id) +@@ -8949,18 +8949,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id) return 1; } @@ -40196,10 +40188,10 @@ index 6351aba..dc4aaf4 100644 int res = 0; diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index 98814d1..9435d05 100644 +index 3288f13..71cfb4e 100644 --- a/drivers/hwmon/applesmc.c +++ b/drivers/hwmon/applesmc.c -@@ -1093,7 +1093,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num) +@@ -1106,7 +1106,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num) { struct applesmc_node_group *grp; struct applesmc_dev_attr *node; @@ -54960,10 +54952,10 @@ index dafafba..10b3b27 100644 EXPORT_SYMBOL(dump_write); diff --git a/fs/dcache.c b/fs/dcache.c -index f09b908..04b9690 100644 +index da89cdf..5347dba 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -3086,7 +3086,8 @@ void __init vfs_caches_init(unsigned long mempages) +@@ -3097,7 +3097,8 @@ void __init vfs_caches_init(unsigned long mempages) mempages -= reserve; names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0, @@ -57719,7 +57711,7 @@ index 62b484e..0f9a140 100644 kfree(s); } diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c -index a3f868a..bb308ae 100644 +index 4e5f332..3cb6350 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -152,6 +152,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr, @@ -73222,7 +73214,7 @@ index ec1aee4..1077986 100644 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, size_t); /* diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h -index 842de22..7f3a41f 100644 +index ded4299..da50e3b 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h @@ -39,9 +39,29 @@ @@ -76796,10 +76788,10 @@ index 34a1e10..03a6d03 100644 struct proc_ns { void *ns; diff --git a/include/linux/random.h b/include/linux/random.h -index 3b9377d..61b506a 100644 +index 6312dd9..f67904d 100644 --- a/include/linux/random.h +++ b/include/linux/random.h -@@ -32,6 +32,11 @@ void prandom_seed(u32 seed); +@@ -33,6 +33,11 @@ void prandom_seed(u32 seed); u32 prandom_u32_state(struct rnd_state *); void prandom_bytes_state(struct rnd_state *state, void *buf, int nbytes); @@ -79832,10 +79824,10 @@ index a67ef9d..2d17ed9 100644 #ifdef CONFIG_BLK_DEV_RAM int fd; diff --git a/init/main.c b/init/main.c -index 9484f4b..0eac7c3 100644 +index e83ac04..ddd6ed5 100644 --- a/init/main.c +++ b/init/main.c -@@ -100,6 +100,8 @@ static inline void mark_rodata_ro(void) { } +@@ -101,6 +101,8 @@ static inline void mark_rodata_ro(void) { } extern void tc_init(void); #endif @@ -79844,7 +79836,7 @@ index 9484f4b..0eac7c3 100644 /* * Debug helper: via this flag we know that we are in 'early bootup code' * where only the boot processor is running with IRQ disabled. This means -@@ -153,6 +155,74 @@ static int __init set_reset_devices(char *str) +@@ -154,6 +156,74 @@ static int __init set_reset_devices(char *str) __setup("reset_devices", set_reset_devices); @@ -79919,7 +79911,7 @@ index 9484f4b..0eac7c3 100644 static const char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, }; const char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; static const char *panic_later, *panic_param; -@@ -655,8 +725,6 @@ static void __init do_ctors(void) +@@ -656,8 +726,6 @@ static void __init do_ctors(void) bool initcall_debug; core_param(initcall_debug, initcall_debug, bool, 0644); @@ -79928,7 +79920,7 @@ index 9484f4b..0eac7c3 100644 static int __init_or_module do_one_initcall_debug(initcall_t fn) { ktime_t calltime, delta, rettime; -@@ -679,23 +747,22 @@ int __init_or_module do_one_initcall(initcall_t fn) +@@ -680,23 +748,22 @@ int __init_or_module do_one_initcall(initcall_t fn) { int count = preempt_count(); int ret; @@ -79956,7 +79948,7 @@ index 9484f4b..0eac7c3 100644 return ret; } -@@ -748,8 +815,14 @@ static void __init do_initcall_level(int level) +@@ -749,8 +816,14 @@ static void __init do_initcall_level(int level) level, level, &repair_env_string); @@ -79972,7 +79964,7 @@ index 9484f4b..0eac7c3 100644 } static void __init do_initcalls(void) -@@ -783,8 +856,14 @@ static void __init do_pre_smp_initcalls(void) +@@ -785,8 +858,14 @@ static void __init do_pre_smp_initcalls(void) { initcall_t *fn; @@ -79988,7 +79980,7 @@ index 9484f4b..0eac7c3 100644 } /* -@@ -802,8 +881,8 @@ static int run_init_process(const char *init_filename) +@@ -804,8 +883,8 @@ static int run_init_process(const char *init_filename) { argv_init[0] = init_filename; return do_execve(init_filename, @@ -79999,7 +79991,7 @@ index 9484f4b..0eac7c3 100644 } static noinline void __init kernel_init_freeable(void); -@@ -880,7 +959,7 @@ static noinline void __init kernel_init_freeable(void) +@@ -882,7 +961,7 @@ static noinline void __init kernel_init_freeable(void) do_basic_setup(); /* Open the /dev/console on the rootfs, this should never fail */ @@ -80008,7 +80000,7 @@ index 9484f4b..0eac7c3 100644 pr_err("Warning: unable to open an initial console.\n"); (void) sys_dup(0); -@@ -893,11 +972,13 @@ static noinline void __init kernel_init_freeable(void) +@@ -895,11 +974,13 @@ static noinline void __init kernel_init_freeable(void) if (!ramdisk_execute_command) ramdisk_execute_command = "/init"; @@ -80098,10 +80090,10 @@ index e4e47f6..a85e0ad 100644 if (u->mq_bytes + mq_bytes < u->mq_bytes || u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) { diff --git a/ipc/msg.c b/ipc/msg.c -index f8fbe2c..074649e 100644 +index 558aa91..359e718 100644 --- a/ipc/msg.c +++ b/ipc/msg.c -@@ -296,18 +296,19 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg) +@@ -297,18 +297,19 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg) return security_msg_queue_associate(msq, msgflg); } @@ -80127,10 +80119,10 @@ index f8fbe2c..074649e 100644 msg_params.flg = msgflg; diff --git a/ipc/sem.c b/ipc/sem.c -index 70480a3..f4e8262 100644 +index 8c4f59b..3a3f4ff 100644 --- a/ipc/sem.c +++ b/ipc/sem.c -@@ -460,10 +460,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp, +@@ -562,10 +562,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp, return 0; } @@ -80147,7 +80139,7 @@ index 70480a3..f4e8262 100644 struct ipc_params sem_params; ns = current->nsproxy->ipc_ns; -@@ -471,10 +476,6 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg) +@@ -573,10 +578,6 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg) if (nsems < 0 || nsems > ns->sc_semmsl) return -EINVAL; @@ -80159,10 +80151,10 @@ index 70480a3..f4e8262 100644 sem_params.flg = semflg; sem_params.u.nsems = nsems; diff --git a/ipc/shm.c b/ipc/shm.c -index 7e199fa..180a1ca 100644 +index 7b87bea..fd0b9bd 100644 --- a/ipc/shm.c +++ b/ipc/shm.c -@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp); +@@ -72,6 +72,14 @@ static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp); static int sysvipc_shm_proc_show(struct seq_file *s, void *it); #endif @@ -80177,7 +80169,7 @@ index 7e199fa..180a1ca 100644 void shm_init_ns(struct ipc_namespace *ns) { ns->shm_ctlmax = SHMMAX; -@@ -531,6 +539,14 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) +@@ -551,6 +559,14 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) shp->shm_lprid = 0; shp->shm_atim = shp->shm_dtim = 0; shp->shm_ctim = get_seconds(); @@ -80192,7 +80184,7 @@ index 7e199fa..180a1ca 100644 shp->shm_segsz = size; shp->shm_nattch = 0; shp->shm_file = file; -@@ -582,18 +598,19 @@ static inline int shm_more_checks(struct kern_ipc_perm *ipcp, +@@ -604,18 +620,19 @@ static inline int shm_more_checks(struct kern_ipc_perm *ipcp, return 0; } @@ -80217,7 +80209,7 @@ index 7e199fa..180a1ca 100644 shm_params.key = key; shm_params.flg = shmflg; shm_params.u.size = size; -@@ -1014,6 +1031,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, +@@ -1076,6 +1093,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, f_mode = FMODE_READ | FMODE_WRITE; } if (shmflg & SHM_EXEC) { @@ -80230,7 +80222,7 @@ index 7e199fa..180a1ca 100644 prot |= PROT_EXEC; acc_mode |= S_IXUGO; } -@@ -1037,9 +1060,21 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, +@@ -1100,10 +1123,22 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, if (err) goto out_unlock; @@ -80243,6 +80235,7 @@ index 7e199fa..180a1ca 100644 + } +#endif + + ipc_lock_object(&shp->shm_perm); path = shp->shm_file->f_path; path_get(&path); shp->shm_nattch++; @@ -80250,8 +80243,8 @@ index 7e199fa..180a1ca 100644 + shp->shm_lapid = current->pid; +#endif size = i_size_read(path.dentry->d_inode); - shm_unlock(shp); - + ipc_unlock_object(&shp->shm_perm); + rcu_read_unlock(); diff --git a/kernel/acct.c b/kernel/acct.c index 8d6e145..33e0b1e 100644 --- a/kernel/acct.c @@ -90084,7 +90077,7 @@ index 6280da8..b5c090e 100644 /* diff --git a/mm/shmem.c b/mm/shmem.c -index 5e6a842..b41916e 100644 +index 509b393..49ecfea 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -33,7 +33,7 @@ |