diff options
-rw-r--r-- | .mailmap | 1 | ||||
-rw-r--r-- | Documentation/vm/numa_memory_policy.txt | 5 | ||||
-rw-r--r-- | MAINTAINERS | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/spear320-hmi.dts | 2 | ||||
-rw-r--r-- | arch/arm/mach-spear/headsmp.S | 2 | ||||
-rw-r--r-- | arch/arm/mach-spear/platsmp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-spear/time.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/cache.c | 4 | ||||
-rw-r--r-- | arch/powerpc/mm/numa.c | 1 | ||||
-rw-r--r-- | drivers/gpio/gpio-spear-spics.c | 4 | ||||
-rw-r--r-- | drivers/irqchip/spear-shirq.c | 2 | ||||
-rw-r--r-- | drivers/mtd/devices/spear_smi.c | 4 | ||||
-rw-r--r-- | drivers/pwm/pwm-spear.c | 4 | ||||
-rw-r--r-- | include/asm-generic/pgtable.h | 31 | ||||
-rw-r--r-- | include/linux/mtd/spear_smi.h | 2 | ||||
-rw-r--r-- | include/linux/wait.h | 14 | ||||
-rw-r--r-- | init/Kconfig | 24 | ||||
-rw-r--r-- | kernel/watchdog.c | 6 | ||||
-rw-r--r-- | lib/Kconfig.debug | 3 | ||||
-rw-r--r-- | mm/filemap.c | 1 | ||||
-rw-r--r-- | mm/huge_memory.c | 13 | ||||
-rw-r--r-- | mm/hugetlb.c | 1 | ||||
-rw-r--r-- | mm/vmscan.c | 2 |
23 files changed, 85 insertions, 47 deletions
@@ -99,6 +99,7 @@ Sachin P Sant <ssant@in.ibm.com> | |||
99 | Sam Ravnborg <sam@mars.ravnborg.org> | 99 | Sam Ravnborg <sam@mars.ravnborg.org> |
100 | Sascha Hauer <s.hauer@pengutronix.de> | 100 | Sascha Hauer <s.hauer@pengutronix.de> |
101 | S.Çağlar Onur <caglar@pardus.org.tr> | 101 | S.Çağlar Onur <caglar@pardus.org.tr> |
102 | Shiraz Hashim <shiraz.linux.kernel@gmail.com> <shiraz.hashim@st.com> | ||
102 | Simon Kelley <simon@thekelleys.org.uk> | 103 | Simon Kelley <simon@thekelleys.org.uk> |
103 | Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr> | 104 | Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr> |
104 | Stephen Hemminger <shemminger@osdl.org> | 105 | Stephen Hemminger <shemminger@osdl.org> |
diff --git a/Documentation/vm/numa_memory_policy.txt b/Documentation/vm/numa_memory_policy.txt index 4e7da6543424..badb0507608f 100644 --- a/Documentation/vm/numa_memory_policy.txt +++ b/Documentation/vm/numa_memory_policy.txt | |||
@@ -174,7 +174,6 @@ Components of Memory Policies | |||
174 | allocation fails, the kernel will search other nodes, in order of | 174 | allocation fails, the kernel will search other nodes, in order of |
175 | increasing distance from the preferred node based on information | 175 | increasing distance from the preferred node based on information |
176 | provided by the platform firmware. | 176 | provided by the platform firmware. |
177 | containing the cpu where the allocation takes place. | ||
178 | 177 | ||
179 | Internally, the Preferred policy uses a single node--the | 178 | Internally, the Preferred policy uses a single node--the |
180 | preferred_node member of struct mempolicy. When the internal | 179 | preferred_node member of struct mempolicy. When the internal |
@@ -275,9 +274,9 @@ Components of Memory Policies | |||
275 | For example, consider a task that is attached to a cpuset with | 274 | For example, consider a task that is attached to a cpuset with |
276 | mems 2-5 that sets an Interleave policy over the same set with | 275 | mems 2-5 that sets an Interleave policy over the same set with |
277 | MPOL_F_RELATIVE_NODES. If the cpuset's mems change to 3-7, the | 276 | MPOL_F_RELATIVE_NODES. If the cpuset's mems change to 3-7, the |
278 | interleave now occurs over nodes 3,5-6. If the cpuset's mems | 277 | interleave now occurs over nodes 3,5-7. If the cpuset's mems |
279 | then change to 0,2-3,5, then the interleave occurs over nodes | 278 | then change to 0,2-3,5, then the interleave occurs over nodes |
280 | 0,3,5. | 279 | 0,2-3,5. |
281 | 280 | ||
282 | Thanks to the consistent remapping, applications preparing | 281 | Thanks to the consistent remapping, applications preparing |
283 | nodemasks to specify memory policies using this flag should | 282 | nodemasks to specify memory policies using this flag should |
diff --git a/MAINTAINERS b/MAINTAINERS index 80399fff805d..e67ea2442041 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -8315,7 +8315,7 @@ F: include/linux/compiler.h | |||
8315 | 8315 | ||
8316 | SPEAR PLATFORM SUPPORT | 8316 | SPEAR PLATFORM SUPPORT |
8317 | M: Viresh Kumar <viresh.linux@gmail.com> | 8317 | M: Viresh Kumar <viresh.linux@gmail.com> |
8318 | M: Shiraz Hashim <shiraz.hashim@st.com> | 8318 | M: Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
8319 | L: spear-devel@list.st.com | 8319 | L: spear-devel@list.st.com |
8320 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 8320 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
8321 | W: http://www.st.com/spear | 8321 | W: http://www.st.com/spear |
diff --git a/arch/arm/boot/dts/spear320-hmi.dts b/arch/arm/boot/dts/spear320-hmi.dts index 3075d2d3a8be..0aa6fef5ce22 100644 --- a/arch/arm/boot/dts/spear320-hmi.dts +++ b/arch/arm/boot/dts/spear320-hmi.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * DTS file for SPEAr320 Evaluation Baord | 2 | * DTS file for SPEAr320 Evaluation Baord |
3 | * | 3 | * |
4 | * Copyright 2012 Shiraz Hashim <shiraz.hashim@st.com> | 4 | * Copyright 2012 Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
5 | * | 5 | * |
6 | * The code contained herein is licensed under the GNU General Public | 6 | * The code contained herein is licensed under the GNU General Public |
7 | * License. You may obtain a copy of the GNU General Public License | 7 | * License. You may obtain a copy of the GNU General Public License |
diff --git a/arch/arm/mach-spear/headsmp.S b/arch/arm/mach-spear/headsmp.S index ed85473a047f..c52192dc3d9f 100644 --- a/arch/arm/mach-spear/headsmp.S +++ b/arch/arm/mach-spear/headsmp.S | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Picked from realview | 4 | * Picked from realview |
5 | * Copyright (c) 2012 ST Microelectronics Limited | 5 | * Copyright (c) 2012 ST Microelectronics Limited |
6 | * Shiraz Hashim <shiraz.hashim@st.com> | 6 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-spear/platsmp.c b/arch/arm/mach-spear/platsmp.c index 5c4a19887b2b..c19751fff2c6 100644 --- a/arch/arm/mach-spear/platsmp.c +++ b/arch/arm/mach-spear/platsmp.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * based upon linux/arch/arm/mach-realview/platsmp.c | 4 | * based upon linux/arch/arm/mach-realview/platsmp.c |
5 | * | 5 | * |
6 | * Copyright (C) 2012 ST Microelectronics Ltd. | 6 | * Copyright (C) 2012 ST Microelectronics Ltd. |
7 | * Shiraz Hashim <shiraz.hashim@st.com> | 7 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
8 | * | 8 | * |
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-spear/time.c b/arch/arm/mach-spear/time.c index 218ba5b67d92..64790353951f 100644 --- a/arch/arm/mach-spear/time.c +++ b/arch/arm/mach-spear/time.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * arch/arm/plat-spear/time.c | 2 | * arch/arm/plat-spear/time.c |
3 | * | 3 | * |
4 | * Copyright (C) 2010 ST Microelectronics | 4 | * Copyright (C) 2010 ST Microelectronics |
5 | * Shiraz Hashim<shiraz.hashim@st.com> | 5 | * Shiraz Hashim<shiraz.linux.kernel@gmail.com> |
6 | * | 6 | * |
7 | * This file is licensed under the terms of the GNU General Public | 7 | * This file is licensed under the terms of the GNU General Public |
8 | * License version 2. This program is licensed "as is" without any | 8 | * License version 2. This program is licensed "as is" without any |
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index e422b38d3113..9e67cdea3c74 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -29,15 +29,15 @@ void (*flush_cache_range)(struct vm_area_struct *vma, unsigned long start, | |||
29 | void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, | 29 | void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, |
30 | unsigned long pfn); | 30 | unsigned long pfn); |
31 | void (*flush_icache_range)(unsigned long start, unsigned long end); | 31 | void (*flush_icache_range)(unsigned long start, unsigned long end); |
32 | EXPORT_SYMBOL_GPL(flush_icache_range); | ||
32 | void (*local_flush_icache_range)(unsigned long start, unsigned long end); | 33 | void (*local_flush_icache_range)(unsigned long start, unsigned long end); |
33 | 34 | ||
34 | void (*__flush_cache_vmap)(void); | 35 | void (*__flush_cache_vmap)(void); |
35 | void (*__flush_cache_vunmap)(void); | 36 | void (*__flush_cache_vunmap)(void); |
36 | 37 | ||
37 | void (*__flush_kernel_vmap_range)(unsigned long vaddr, int size); | 38 | void (*__flush_kernel_vmap_range)(unsigned long vaddr, int size); |
38 | void (*__invalidate_kernel_vmap_range)(unsigned long vaddr, int size); | ||
39 | |||
40 | EXPORT_SYMBOL_GPL(__flush_kernel_vmap_range); | 39 | EXPORT_SYMBOL_GPL(__flush_kernel_vmap_range); |
40 | void (*__invalidate_kernel_vmap_range)(unsigned long vaddr, int size); | ||
41 | 41 | ||
42 | /* MIPS specific cache operations */ | 42 | /* MIPS specific cache operations */ |
43 | void (*flush_cache_sigtramp)(unsigned long addr); | 43 | void (*flush_cache_sigtramp)(unsigned long addr); |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 4ebbb9e99286..3b181b22cd46 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -232,6 +232,7 @@ int __node_distance(int a, int b) | |||
232 | 232 | ||
233 | return distance; | 233 | return distance; |
234 | } | 234 | } |
235 | EXPORT_SYMBOL(__node_distance); | ||
235 | 236 | ||
236 | static void initialize_distance_lookup_table(int nid, | 237 | static void initialize_distance_lookup_table(int nid, |
237 | const __be32 *associativity) | 238 | const __be32 *associativity) |
diff --git a/drivers/gpio/gpio-spear-spics.c b/drivers/gpio/gpio-spear-spics.c index e9a0415834ea..30bcc539425d 100644 --- a/drivers/gpio/gpio-spear-spics.c +++ b/drivers/gpio/gpio-spear-spics.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * SPEAr platform SPI chipselect abstraction over gpiolib | 2 | * SPEAr platform SPI chipselect abstraction over gpiolib |
3 | * | 3 | * |
4 | * Copyright (C) 2012 ST Microelectronics | 4 | * Copyright (C) 2012 ST Microelectronics |
5 | * Shiraz Hashim <shiraz.hashim@st.com> | 5 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
6 | * | 6 | * |
7 | * This file is licensed under the terms of the GNU General Public | 7 | * This file is licensed under the terms of the GNU General Public |
8 | * License version 2. This program is licensed "as is" without any | 8 | * License version 2. This program is licensed "as is" without any |
@@ -205,6 +205,6 @@ static int __init spics_gpio_init(void) | |||
205 | } | 205 | } |
206 | subsys_initcall(spics_gpio_init); | 206 | subsys_initcall(spics_gpio_init); |
207 | 207 | ||
208 | MODULE_AUTHOR("Shiraz Hashim <shiraz.hashim@st.com>"); | 208 | MODULE_AUTHOR("Shiraz Hashim <shiraz.linux.kernel@gmail.com>"); |
209 | MODULE_DESCRIPTION("ST Microlectronics SPEAr SPI Chip Select Abstraction"); | 209 | MODULE_DESCRIPTION("ST Microlectronics SPEAr SPI Chip Select Abstraction"); |
210 | MODULE_LICENSE("GPL"); | 210 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c index 8527743b5cef..3fdda3a40269 100644 --- a/drivers/irqchip/spear-shirq.c +++ b/drivers/irqchip/spear-shirq.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * Viresh Kumar <viresh.linux@gmail.com> | 5 | * Viresh Kumar <viresh.linux@gmail.com> |
6 | * | 6 | * |
7 | * Copyright (C) 2012 ST Microelectronics | 7 | * Copyright (C) 2012 ST Microelectronics |
8 | * Shiraz Hashim <shiraz.hashim@st.com> | 8 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
9 | * | 9 | * |
10 | * This file is licensed under the terms of the GNU General Public | 10 | * This file is licensed under the terms of the GNU General Public |
11 | * License version 2. This program is licensed "as is" without any | 11 | * License version 2. This program is licensed "as is" without any |
diff --git a/drivers/mtd/devices/spear_smi.c b/drivers/mtd/devices/spear_smi.c index 363da96e6891..c4176b0f382d 100644 --- a/drivers/mtd/devices/spear_smi.c +++ b/drivers/mtd/devices/spear_smi.c | |||
@@ -6,7 +6,7 @@ | |||
6 | * | 6 | * |
7 | * Copyright © 2010 STMicroelectronics. | 7 | * Copyright © 2010 STMicroelectronics. |
8 | * Ashish Priyadarshi | 8 | * Ashish Priyadarshi |
9 | * Shiraz Hashim <shiraz.hashim@st.com> | 9 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
10 | * | 10 | * |
11 | * This file is licensed under the terms of the GNU General Public | 11 | * This file is licensed under the terms of the GNU General Public |
12 | * License version 2. This program is licensed "as is" without any | 12 | * License version 2. This program is licensed "as is" without any |
@@ -1089,5 +1089,5 @@ static struct platform_driver spear_smi_driver = { | |||
1089 | module_platform_driver(spear_smi_driver); | 1089 | module_platform_driver(spear_smi_driver); |
1090 | 1090 | ||
1091 | MODULE_LICENSE("GPL"); | 1091 | MODULE_LICENSE("GPL"); |
1092 | MODULE_AUTHOR("Ashish Priyadarshi, Shiraz Hashim <shiraz.hashim@st.com>"); | 1092 | MODULE_AUTHOR("Ashish Priyadarshi, Shiraz Hashim <shiraz.linux.kernel@gmail.com>"); |
1093 | MODULE_DESCRIPTION("MTD SMI driver for serial nor flash chips"); | 1093 | MODULE_DESCRIPTION("MTD SMI driver for serial nor flash chips"); |
diff --git a/drivers/pwm/pwm-spear.c b/drivers/pwm/pwm-spear.c index 8ad26b8bf418..cb2d4f0f9711 100644 --- a/drivers/pwm/pwm-spear.c +++ b/drivers/pwm/pwm-spear.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * ST Microelectronics SPEAr Pulse Width Modulator driver | 2 | * ST Microelectronics SPEAr Pulse Width Modulator driver |
3 | * | 3 | * |
4 | * Copyright (C) 2012 ST Microelectronics | 4 | * Copyright (C) 2012 ST Microelectronics |
5 | * Shiraz Hashim <shiraz.hashim@st.com> | 5 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
6 | * | 6 | * |
7 | * This file is licensed under the terms of the GNU General Public | 7 | * This file is licensed under the terms of the GNU General Public |
8 | * License version 2. This program is licensed "as is" without any | 8 | * License version 2. This program is licensed "as is" without any |
@@ -264,6 +264,6 @@ static struct platform_driver spear_pwm_driver = { | |||
264 | module_platform_driver(spear_pwm_driver); | 264 | module_platform_driver(spear_pwm_driver); |
265 | 265 | ||
266 | MODULE_LICENSE("GPL"); | 266 | MODULE_LICENSE("GPL"); |
267 | MODULE_AUTHOR("Shiraz Hashim <shiraz.hashim@st.com>"); | 267 | MODULE_AUTHOR("Shiraz Hashim <shiraz.linux.kernel@gmail.com>"); |
268 | MODULE_AUTHOR("Viresh Kumar <viresh.kumar@linaro.com>"); | 268 | MODULE_AUTHOR("Viresh Kumar <viresh.kumar@linaro.com>"); |
269 | MODULE_ALIAS("platform:spear-pwm"); | 269 | MODULE_ALIAS("platform:spear-pwm"); |
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 1ec08c198b66..a8015a7a55bb 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -693,24 +693,35 @@ static inline int pmd_numa(pmd_t pmd) | |||
693 | #ifndef pte_mknonnuma | 693 | #ifndef pte_mknonnuma |
694 | static inline pte_t pte_mknonnuma(pte_t pte) | 694 | static inline pte_t pte_mknonnuma(pte_t pte) |
695 | { | 695 | { |
696 | pte = pte_clear_flags(pte, _PAGE_NUMA); | 696 | pteval_t val = pte_val(pte); |
697 | return pte_set_flags(pte, _PAGE_PRESENT|_PAGE_ACCESSED); | 697 | |
698 | val &= ~_PAGE_NUMA; | ||
699 | val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | ||
700 | return __pte(val); | ||
698 | } | 701 | } |
699 | #endif | 702 | #endif |
700 | 703 | ||
701 | #ifndef pmd_mknonnuma | 704 | #ifndef pmd_mknonnuma |
702 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) | 705 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) |
703 | { | 706 | { |
704 | pmd = pmd_clear_flags(pmd, _PAGE_NUMA); | 707 | pmdval_t val = pmd_val(pmd); |
705 | return pmd_set_flags(pmd, _PAGE_PRESENT|_PAGE_ACCESSED); | 708 | |
709 | val &= ~_PAGE_NUMA; | ||
710 | val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | ||
711 | |||
712 | return __pmd(val); | ||
706 | } | 713 | } |
707 | #endif | 714 | #endif |
708 | 715 | ||
709 | #ifndef pte_mknuma | 716 | #ifndef pte_mknuma |
710 | static inline pte_t pte_mknuma(pte_t pte) | 717 | static inline pte_t pte_mknuma(pte_t pte) |
711 | { | 718 | { |
712 | pte = pte_set_flags(pte, _PAGE_NUMA); | 719 | pteval_t val = pte_val(pte); |
713 | return pte_clear_flags(pte, _PAGE_PRESENT); | 720 | |
721 | val &= ~_PAGE_PRESENT; | ||
722 | val |= _PAGE_NUMA; | ||
723 | |||
724 | return __pte(val); | ||
714 | } | 725 | } |
715 | #endif | 726 | #endif |
716 | 727 | ||
@@ -729,8 +740,12 @@ static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr, | |||
729 | #ifndef pmd_mknuma | 740 | #ifndef pmd_mknuma |
730 | static inline pmd_t pmd_mknuma(pmd_t pmd) | 741 | static inline pmd_t pmd_mknuma(pmd_t pmd) |
731 | { | 742 | { |
732 | pmd = pmd_set_flags(pmd, _PAGE_NUMA); | 743 | pmdval_t val = pmd_val(pmd); |
733 | return pmd_clear_flags(pmd, _PAGE_PRESENT); | 744 | |
745 | val &= ~_PAGE_PRESENT; | ||
746 | val |= _PAGE_NUMA; | ||
747 | |||
748 | return __pmd(val); | ||
734 | } | 749 | } |
735 | #endif | 750 | #endif |
736 | 751 | ||
diff --git a/include/linux/mtd/spear_smi.h b/include/linux/mtd/spear_smi.h index 8ae1726044c3..581603ac1277 100644 --- a/include/linux/mtd/spear_smi.h +++ b/include/linux/mtd/spear_smi.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright © 2010 ST Microelectronics | 2 | * Copyright © 2010 ST Microelectronics |
3 | * Shiraz Hashim <shiraz.hashim@st.com> | 3 | * Shiraz Hashim <shiraz.linux.kernel@gmail.com> |
4 | * | 4 | * |
5 | * This file is licensed under the terms of the GNU General Public | 5 | * This file is licensed under the terms of the GNU General Public |
6 | * License version 2. This program is licensed "as is" without any | 6 | * License version 2. This program is licensed "as is" without any |
diff --git a/include/linux/wait.h b/include/linux/wait.h index e7d9d9ed14f5..bd68819f0815 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
@@ -191,11 +191,23 @@ wait_queue_head_t *bit_waitqueue(void *, int); | |||
191 | (!__builtin_constant_p(state) || \ | 191 | (!__builtin_constant_p(state) || \ |
192 | state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ | 192 | state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ |
193 | 193 | ||
194 | /* | ||
195 | * The below macro ___wait_event() has an explicit shadow of the __ret | ||
196 | * variable when used from the wait_event_*() macros. | ||
197 | * | ||
198 | * This is so that both can use the ___wait_cond_timeout() construct | ||
199 | * to wrap the condition. | ||
200 | * | ||
201 | * The type inconsistency of the wait_event_*() __ret variable is also | ||
202 | * on purpose; we use long where we can return timeout values and int | ||
203 | * otherwise. | ||
204 | */ | ||
205 | |||
194 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ | 206 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ |
195 | ({ \ | 207 | ({ \ |
196 | __label__ __out; \ | 208 | __label__ __out; \ |
197 | wait_queue_t __wait; \ | 209 | wait_queue_t __wait; \ |
198 | long __ret = ret; \ | 210 | long __ret = ret; /* explicit shadow */ \ |
199 | \ | 211 | \ |
200 | INIT_LIST_HEAD(&__wait.task_list); \ | 212 | INIT_LIST_HEAD(&__wait.task_list); \ |
201 | if (exclusive) \ | 213 | if (exclusive) \ |
diff --git a/init/Kconfig b/init/Kconfig index 765018c24cf9..9d3585bb2a7a 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -1646,6 +1646,18 @@ config MMAP_ALLOW_UNINITIALIZED | |||
1646 | 1646 | ||
1647 | See Documentation/nommu-mmap.txt for more information. | 1647 | See Documentation/nommu-mmap.txt for more information. |
1648 | 1648 | ||
1649 | config SYSTEM_TRUSTED_KEYRING | ||
1650 | bool "Provide system-wide ring of trusted keys" | ||
1651 | depends on KEYS | ||
1652 | help | ||
1653 | Provide a system keyring to which trusted keys can be added. Keys in | ||
1654 | the keyring are considered to be trusted. Keys may be added at will | ||
1655 | by the kernel from compiled-in data and from hardware key stores, but | ||
1656 | userspace may only add extra keys if those keys can be verified by | ||
1657 | keys already in the keyring. | ||
1658 | |||
1659 | Keys in this keyring are used by module signature checking. | ||
1660 | |||
1649 | config PROFILING | 1661 | config PROFILING |
1650 | bool "Profiling support" | 1662 | bool "Profiling support" |
1651 | help | 1663 | help |
@@ -1681,18 +1693,6 @@ config BASE_SMALL | |||
1681 | default 0 if BASE_FULL | 1693 | default 0 if BASE_FULL |
1682 | default 1 if !BASE_FULL | 1694 | default 1 if !BASE_FULL |
1683 | 1695 | ||
1684 | config SYSTEM_TRUSTED_KEYRING | ||
1685 | bool "Provide system-wide ring of trusted keys" | ||
1686 | depends on KEYS | ||
1687 | help | ||
1688 | Provide a system keyring to which trusted keys can be added. Keys in | ||
1689 | the keyring are considered to be trusted. Keys may be added at will | ||
1690 | by the kernel from compiled-in data and from hardware key stores, but | ||
1691 | userspace may only add extra keys if those keys can be verified by | ||
1692 | keys already in the keyring. | ||
1693 | |||
1694 | Keys in this keyring are used by module signature checking. | ||
1695 | |||
1696 | menuconfig MODULES | 1696 | menuconfig MODULES |
1697 | bool "Enable loadable module support" | 1697 | bool "Enable loadable module support" |
1698 | option modules | 1698 | option modules |
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index e90089fd78e0..516203e665fc 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c | |||
@@ -138,7 +138,11 @@ static void __touch_watchdog(void) | |||
138 | 138 | ||
139 | void touch_softlockup_watchdog(void) | 139 | void touch_softlockup_watchdog(void) |
140 | { | 140 | { |
141 | __this_cpu_write(watchdog_touch_ts, 0); | 141 | /* |
142 | * Preemption can be enabled. It doesn't matter which CPU's timestamp | ||
143 | * gets zeroed here, so use the raw_ operation. | ||
144 | */ | ||
145 | raw_cpu_write(watchdog_touch_ts, 0); | ||
142 | } | 146 | } |
143 | EXPORT_SYMBOL(touch_softlockup_watchdog); | 147 | EXPORT_SYMBOL(touch_softlockup_watchdog); |
144 | 148 | ||
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 140b66a874c1..819ac51202c0 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -505,8 +505,7 @@ config DEBUG_VM_RB | |||
505 | bool "Debug VM red-black trees" | 505 | bool "Debug VM red-black trees" |
506 | depends on DEBUG_VM | 506 | depends on DEBUG_VM |
507 | help | 507 | help |
508 | Enable this to turn on more extended checks in the virtual-memory | 508 | Enable VM red-black tree debugging information and extra validations. |
509 | system that may impact performance. | ||
510 | 509 | ||
511 | If unsure, say N. | 510 | If unsure, say N. |
512 | 511 | ||
diff --git a/mm/filemap.c b/mm/filemap.c index a82fbe4c9e8e..5020b280a771 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -2581,7 +2581,6 @@ EXPORT_SYMBOL(generic_perform_write); | |||
2581 | * @iocb: IO state structure (file, offset, etc.) | 2581 | * @iocb: IO state structure (file, offset, etc.) |
2582 | * @iov: vector with data to write | 2582 | * @iov: vector with data to write |
2583 | * @nr_segs: number of segments in the vector | 2583 | * @nr_segs: number of segments in the vector |
2584 | * @ppos: position where to write | ||
2585 | * | 2584 | * |
2586 | * This function does all the work needed for actually writing data to a | 2585 | * This function does all the work needed for actually writing data to a |
2587 | * file. It does all basic checks, removes SUID from the file, updates | 2586 | * file. It does all basic checks, removes SUID from the file, updates |
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 64635f5278ff..b4b1feba6472 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c | |||
@@ -1536,16 +1536,23 @@ pmd_t *page_check_address_pmd(struct page *page, | |||
1536 | enum page_check_address_pmd_flag flag, | 1536 | enum page_check_address_pmd_flag flag, |
1537 | spinlock_t **ptl) | 1537 | spinlock_t **ptl) |
1538 | { | 1538 | { |
1539 | pgd_t *pgd; | ||
1540 | pud_t *pud; | ||
1539 | pmd_t *pmd; | 1541 | pmd_t *pmd; |
1540 | 1542 | ||
1541 | if (address & ~HPAGE_PMD_MASK) | 1543 | if (address & ~HPAGE_PMD_MASK) |
1542 | return NULL; | 1544 | return NULL; |
1543 | 1545 | ||
1544 | pmd = mm_find_pmd(mm, address); | 1546 | pgd = pgd_offset(mm, address); |
1545 | if (!pmd) | 1547 | if (!pgd_present(*pgd)) |
1546 | return NULL; | 1548 | return NULL; |
1549 | pud = pud_offset(pgd, address); | ||
1550 | if (!pud_present(*pud)) | ||
1551 | return NULL; | ||
1552 | pmd = pmd_offset(pud, address); | ||
1553 | |||
1547 | *ptl = pmd_lock(mm, pmd); | 1554 | *ptl = pmd_lock(mm, pmd); |
1548 | if (pmd_none(*pmd)) | 1555 | if (!pmd_present(*pmd)) |
1549 | goto unlock; | 1556 | goto unlock; |
1550 | if (pmd_page(*pmd) != page) | 1557 | if (pmd_page(*pmd) != page) |
1551 | goto unlock; | 1558 | goto unlock; |
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index dd30f22b35e0..246192929a2d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -1172,6 +1172,7 @@ static void return_unused_surplus_pages(struct hstate *h, | |||
1172 | while (nr_pages--) { | 1172 | while (nr_pages--) { |
1173 | if (!free_pool_huge_page(h, &node_states[N_MEMORY], 1)) | 1173 | if (!free_pool_huge_page(h, &node_states[N_MEMORY], 1)) |
1174 | break; | 1174 | break; |
1175 | cond_resched_lock(&hugetlb_lock); | ||
1175 | } | 1176 | } |
1176 | } | 1177 | } |
1177 | 1178 | ||
diff --git a/mm/vmscan.c b/mm/vmscan.c index 9b6497eda806..3f56c8deb3c0 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1158,7 +1158,7 @@ unsigned long reclaim_clean_pages_from_list(struct zone *zone, | |||
1158 | TTU_UNMAP|TTU_IGNORE_ACCESS, | 1158 | TTU_UNMAP|TTU_IGNORE_ACCESS, |
1159 | &dummy1, &dummy2, &dummy3, &dummy4, &dummy5, true); | 1159 | &dummy1, &dummy2, &dummy3, &dummy4, &dummy5, true); |
1160 | list_splice(&clean_pages, page_list); | 1160 | list_splice(&clean_pages, page_list); |
1161 | __mod_zone_page_state(zone, NR_ISOLATED_FILE, -ret); | 1161 | mod_zone_page_state(zone, NR_ISOLATED_FILE, -ret); |
1162 | return ret; | 1162 | return ret; |
1163 | } | 1163 | } |
1164 | 1164 | ||