Commit ea2388f2813ec7871c40a8b18afb80b5674d6e1d
Exists in
master
and in
13 other branches
Merge branch 'akpm' (incoming from Andrew)
Merge misc fixes from Andrew Morton: "13 fixes" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: thp: close race between split and zap huge pages mm: fix new kernel-doc warning in filemap.c mm: fix CONFIG_DEBUG_VM_RB description mm: use paravirt friendly ops for NUMA hinting ptes mips: export flush_icache_range mm/hugetlb.c: add cond_resched_lock() in return_unused_surplus_pages() wait: explain the shadowing and type inconsistencies Shiraz has moved Documentation/vm/numa_memory_policy.txt: fix wrong document in numa_memory_policy.txt powerpc/mm: fix ".__node_distance" undefined kernel/watchdog.c:touch_softlockup_watchdog(): use raw_cpu_write() init/Kconfig: move the trusted keyring config option to general setup vmscan: reclaim_clean_pages_from_list() must use mod_zone_page_state()
Showing 23 changed files Side-by-side Diff
- .mailmap
- Documentation/vm/numa_memory_policy.txt
- MAINTAINERS
- arch/arm/boot/dts/spear320-hmi.dts
- arch/arm/mach-spear/headsmp.S
- arch/arm/mach-spear/platsmp.c
- arch/arm/mach-spear/time.c
- arch/mips/mm/cache.c
- arch/powerpc/mm/numa.c
- drivers/gpio/gpio-spear-spics.c
- drivers/irqchip/spear-shirq.c
- drivers/mtd/devices/spear_smi.c
- drivers/pwm/pwm-spear.c
- include/asm-generic/pgtable.h
- include/linux/mtd/spear_smi.h
- include/linux/wait.h
- init/Kconfig
- kernel/watchdog.c
- lib/Kconfig.debug
- mm/filemap.c
- mm/huge_memory.c
- mm/hugetlb.c
- mm/vmscan.c
.mailmap
... | ... | @@ -99,6 +99,7 @@ |
99 | 99 | Sam Ravnborg <sam@mars.ravnborg.org> |
100 | 100 | Sascha Hauer <s.hauer@pengutronix.de> |
101 | 101 | S.Çağlar Onur <caglar@pardus.org.tr> |
102 | +Shiraz Hashim <shiraz.linux.kernel@gmail.com> <shiraz.hashim@st.com> | |
102 | 103 | Simon Kelley <simon@thekelleys.org.uk> |
103 | 104 | Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr> |
104 | 105 | Stephen Hemminger <shemminger@osdl.org> |
Documentation/vm/numa_memory_policy.txt
... | ... | @@ -174,7 +174,6 @@ |
174 | 174 | allocation fails, the kernel will search other nodes, in order of |
175 | 175 | increasing distance from the preferred node based on information |
176 | 176 | provided by the platform firmware. |
177 | - containing the cpu where the allocation takes place. | |
178 | 177 | |
179 | 178 | Internally, the Preferred policy uses a single node--the |
180 | 179 | preferred_node member of struct mempolicy. When the internal |
181 | 180 | |
... | ... | @@ -275,9 +274,9 @@ |
275 | 274 | For example, consider a task that is attached to a cpuset with |
276 | 275 | mems 2-5 that sets an Interleave policy over the same set with |
277 | 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 | 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 | 281 | Thanks to the consistent remapping, applications preparing |
283 | 282 | nodemasks to specify memory policies using this flag should |
MAINTAINERS
... | ... | @@ -8315,7 +8315,7 @@ |
8315 | 8315 | |
8316 | 8316 | SPEAR PLATFORM SUPPORT |
8317 | 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 | 8319 | L: spear-devel@list.st.com |
8320 | 8320 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
8321 | 8321 | W: http://www.st.com/spear |
arch/arm/boot/dts/spear320-hmi.dts
1 | 1 | /* |
2 | 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 | 6 | * The code contained herein is licensed under the GNU General Public |
7 | 7 | * License. You may obtain a copy of the GNU General Public License |
arch/arm/mach-spear/headsmp.S
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | * |
4 | 4 | * Picked from realview |
5 | 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 | 8 | * This program is free software; you can redistribute it and/or modify |
9 | 9 | * it under the terms of the GNU General Public License version 2 as |
arch/arm/mach-spear/platsmp.c
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | * based upon linux/arch/arm/mach-realview/platsmp.c |
5 | 5 | * |
6 | 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 | 9 | * This program is free software; you can redistribute it and/or modify |
10 | 10 | * it under the terms of the GNU General Public License version 2 as |
arch/arm/mach-spear/time.c
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | * arch/arm/plat-spear/time.c |
3 | 3 | * |
4 | 4 | * Copyright (C) 2010 ST Microelectronics |
5 | - * Shiraz Hashim<shiraz.hashim@st.com> | |
5 | + * Shiraz Hashim<shiraz.linux.kernel@gmail.com> | |
6 | 6 | * |
7 | 7 | * This file is licensed under the terms of the GNU General Public |
8 | 8 | * License version 2. This program is licensed "as is" without any |
arch/mips/mm/cache.c
... | ... | @@ -29,15 +29,15 @@ |
29 | 29 | void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, |
30 | 30 | unsigned long pfn); |
31 | 31 | void (*flush_icache_range)(unsigned long start, unsigned long end); |
32 | +EXPORT_SYMBOL_GPL(flush_icache_range); | |
32 | 33 | void (*local_flush_icache_range)(unsigned long start, unsigned long end); |
33 | 34 | |
34 | 35 | void (*__flush_cache_vmap)(void); |
35 | 36 | void (*__flush_cache_vunmap)(void); |
36 | 37 | |
37 | 38 | void (*__flush_kernel_vmap_range)(unsigned long vaddr, int size); |
38 | -void (*__invalidate_kernel_vmap_range)(unsigned long vaddr, int size); | |
39 | - | |
40 | 39 | EXPORT_SYMBOL_GPL(__flush_kernel_vmap_range); |
40 | +void (*__invalidate_kernel_vmap_range)(unsigned long vaddr, int size); | |
41 | 41 | |
42 | 42 | /* MIPS specific cache operations */ |
43 | 43 | void (*flush_cache_sigtramp)(unsigned long addr); |
arch/powerpc/mm/numa.c
drivers/gpio/gpio-spear-spics.c
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | * SPEAr platform SPI chipselect abstraction over gpiolib |
3 | 3 | * |
4 | 4 | * Copyright (C) 2012 ST Microelectronics |
5 | - * Shiraz Hashim <shiraz.hashim@st.com> | |
5 | + * Shiraz Hashim <shiraz.linux.kernel@gmail.com> | |
6 | 6 | * |
7 | 7 | * This file is licensed under the terms of the GNU General Public |
8 | 8 | * License version 2. This program is licensed "as is" without any |
... | ... | @@ -205,7 +205,7 @@ |
205 | 205 | } |
206 | 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 | 209 | MODULE_DESCRIPTION("ST Microlectronics SPEAr SPI Chip Select Abstraction"); |
210 | 210 | MODULE_LICENSE("GPL"); |
drivers/irqchip/spear-shirq.c
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | * Viresh Kumar <viresh.linux@gmail.com> |
6 | 6 | * |
7 | 7 | * Copyright (C) 2012 ST Microelectronics |
8 | - * Shiraz Hashim <shiraz.hashim@st.com> | |
8 | + * Shiraz Hashim <shiraz.linux.kernel@gmail.com> | |
9 | 9 | * |
10 | 10 | * This file is licensed under the terms of the GNU General Public |
11 | 11 | * License version 2. This program is licensed "as is" without any |
drivers/mtd/devices/spear_smi.c
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | * |
7 | 7 | * Copyright © 2010 STMicroelectronics. |
8 | 8 | * Ashish Priyadarshi |
9 | - * Shiraz Hashim <shiraz.hashim@st.com> | |
9 | + * Shiraz Hashim <shiraz.linux.kernel@gmail.com> | |
10 | 10 | * |
11 | 11 | * This file is licensed under the terms of the GNU General Public |
12 | 12 | * License version 2. This program is licensed "as is" without any |
... | ... | @@ -1089,6 +1089,6 @@ |
1089 | 1089 | module_platform_driver(spear_smi_driver); |
1090 | 1090 | |
1091 | 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 | 1093 | MODULE_DESCRIPTION("MTD SMI driver for serial nor flash chips"); |
drivers/pwm/pwm-spear.c
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | * ST Microelectronics SPEAr Pulse Width Modulator driver |
3 | 3 | * |
4 | 4 | * Copyright (C) 2012 ST Microelectronics |
5 | - * Shiraz Hashim <shiraz.hashim@st.com> | |
5 | + * Shiraz Hashim <shiraz.linux.kernel@gmail.com> | |
6 | 6 | * |
7 | 7 | * This file is licensed under the terms of the GNU General Public |
8 | 8 | * License version 2. This program is licensed "as is" without any |
... | ... | @@ -264,7 +264,7 @@ |
264 | 264 | module_platform_driver(spear_pwm_driver); |
265 | 265 | |
266 | 266 | MODULE_LICENSE("GPL"); |
267 | -MODULE_AUTHOR("Shiraz Hashim <shiraz.hashim@st.com>"); | |
267 | +MODULE_AUTHOR("Shiraz Hashim <shiraz.linux.kernel@gmail.com>"); | |
268 | 268 | MODULE_AUTHOR("Viresh Kumar <viresh.kumar@linaro.com>"); |
269 | 269 | MODULE_ALIAS("platform:spear-pwm"); |
include/asm-generic/pgtable.h
... | ... | @@ -693,24 +693,35 @@ |
693 | 693 | #ifndef pte_mknonnuma |
694 | 694 | static inline pte_t pte_mknonnuma(pte_t pte) |
695 | 695 | { |
696 | - pte = pte_clear_flags(pte, _PAGE_NUMA); | |
697 | - return pte_set_flags(pte, _PAGE_PRESENT|_PAGE_ACCESSED); | |
696 | + pteval_t val = pte_val(pte); | |
697 | + | |
698 | + val &= ~_PAGE_NUMA; | |
699 | + val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | |
700 | + return __pte(val); | |
698 | 701 | } |
699 | 702 | #endif |
700 | 703 | |
701 | 704 | #ifndef pmd_mknonnuma |
702 | 705 | static inline pmd_t pmd_mknonnuma(pmd_t pmd) |
703 | 706 | { |
704 | - pmd = pmd_clear_flags(pmd, _PAGE_NUMA); | |
705 | - return pmd_set_flags(pmd, _PAGE_PRESENT|_PAGE_ACCESSED); | |
707 | + pmdval_t val = pmd_val(pmd); | |
708 | + | |
709 | + val &= ~_PAGE_NUMA; | |
710 | + val |= (_PAGE_PRESENT|_PAGE_ACCESSED); | |
711 | + | |
712 | + return __pmd(val); | |
706 | 713 | } |
707 | 714 | #endif |
708 | 715 | |
709 | 716 | #ifndef pte_mknuma |
710 | 717 | static inline pte_t pte_mknuma(pte_t pte) |
711 | 718 | { |
712 | - pte = pte_set_flags(pte, _PAGE_NUMA); | |
713 | - return pte_clear_flags(pte, _PAGE_PRESENT); | |
719 | + pteval_t val = pte_val(pte); | |
720 | + | |
721 | + val &= ~_PAGE_PRESENT; | |
722 | + val |= _PAGE_NUMA; | |
723 | + | |
724 | + return __pte(val); | |
714 | 725 | } |
715 | 726 | #endif |
716 | 727 | |
... | ... | @@ -729,8 +740,12 @@ |
729 | 740 | #ifndef pmd_mknuma |
730 | 741 | static inline pmd_t pmd_mknuma(pmd_t pmd) |
731 | 742 | { |
732 | - pmd = pmd_set_flags(pmd, _PAGE_NUMA); | |
733 | - return pmd_clear_flags(pmd, _PAGE_PRESENT); | |
743 | + pmdval_t val = pmd_val(pmd); | |
744 | + | |
745 | + val &= ~_PAGE_PRESENT; | |
746 | + val |= _PAGE_NUMA; | |
747 | + | |
748 | + return __pmd(val); | |
734 | 749 | } |
735 | 750 | #endif |
736 | 751 |
include/linux/mtd/spear_smi.h
include/linux/wait.h
... | ... | @@ -191,11 +191,23 @@ |
191 | 191 | (!__builtin_constant_p(state) || \ |
192 | 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 | 206 | #define ___wait_event(wq, condition, state, exclusive, ret, cmd) \ |
195 | 207 | ({ \ |
196 | 208 | __label__ __out; \ |
197 | 209 | wait_queue_t __wait; \ |
198 | - long __ret = ret; \ | |
210 | + long __ret = ret; /* explicit shadow */ \ | |
199 | 211 | \ |
200 | 212 | INIT_LIST_HEAD(&__wait.task_list); \ |
201 | 213 | if (exclusive) \ |
init/Kconfig
... | ... | @@ -1646,6 +1646,18 @@ |
1646 | 1646 | |
1647 | 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 | 1661 | config PROFILING |
1650 | 1662 | bool "Profiling support" |
1651 | 1663 | help |
... | ... | @@ -1680,18 +1692,6 @@ |
1680 | 1692 | int |
1681 | 1693 | default 0 if BASE_FULL |
1682 | 1694 | default 1 if !BASE_FULL |
1683 | - | |
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 | 1695 | |
1696 | 1696 | menuconfig MODULES |
1697 | 1697 | bool "Enable loadable module support" |
kernel/watchdog.c
... | ... | @@ -138,7 +138,11 @@ |
138 | 138 | |
139 | 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 | 147 | EXPORT_SYMBOL(touch_softlockup_watchdog); |
144 | 148 |
lib/Kconfig.debug
... | ... | @@ -505,8 +505,7 @@ |
505 | 505 | bool "Debug VM red-black trees" |
506 | 506 | depends on DEBUG_VM |
507 | 507 | help |
508 | - Enable this to turn on more extended checks in the virtual-memory | |
509 | - system that may impact performance. | |
508 | + Enable VM red-black tree debugging information and extra validations. | |
510 | 509 | |
511 | 510 | If unsure, say N. |
512 | 511 |
mm/filemap.c
... | ... | @@ -2581,7 +2581,6 @@ |
2581 | 2581 | * @iocb: IO state structure (file, offset, etc.) |
2582 | 2582 | * @iov: vector with data to write |
2583 | 2583 | * @nr_segs: number of segments in the vector |
2584 | - * @ppos: position where to write | |
2585 | 2584 | * |
2586 | 2585 | * This function does all the work needed for actually writing data to a |
2587 | 2586 | * file. It does all basic checks, removes SUID from the file, updates |
mm/huge_memory.c
... | ... | @@ -1536,16 +1536,23 @@ |
1536 | 1536 | enum page_check_address_pmd_flag flag, |
1537 | 1537 | spinlock_t **ptl) |
1538 | 1538 | { |
1539 | + pgd_t *pgd; | |
1540 | + pud_t *pud; | |
1539 | 1541 | pmd_t *pmd; |
1540 | 1542 | |
1541 | 1543 | if (address & ~HPAGE_PMD_MASK) |
1542 | 1544 | return NULL; |
1543 | 1545 | |
1544 | - pmd = mm_find_pmd(mm, address); | |
1545 | - if (!pmd) | |
1546 | + pgd = pgd_offset(mm, address); | |
1547 | + if (!pgd_present(*pgd)) | |
1546 | 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 | 1554 | *ptl = pmd_lock(mm, pmd); |
1548 | - if (pmd_none(*pmd)) | |
1555 | + if (!pmd_present(*pmd)) | |
1549 | 1556 | goto unlock; |
1550 | 1557 | if (pmd_page(*pmd) != page) |
1551 | 1558 | goto unlock; |
mm/hugetlb.c
mm/vmscan.c
... | ... | @@ -1158,7 +1158,7 @@ |
1158 | 1158 | TTU_UNMAP|TTU_IGNORE_ACCESS, |
1159 | 1159 | &dummy1, &dummy2, &dummy3, &dummy4, &dummy5, true); |
1160 | 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 | 1162 | return ret; |
1163 | 1163 | } |
1164 | 1164 |