Skip to content

Commit e34bac7

Browse files
committed
Merge branch 'akpm' (patches from Andrew)
Merge updates from Andrew Morton: - various misc bits - most of MM (quite a lot of MM material is awaiting the merge of linux-next dependencies) - kasan - printk updates - procfs updates - MAINTAINERS - /lib updates - checkpatch updates * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (123 commits) init: reduce rootwait polling interval time to 5ms binfmt_elf: use vmalloc() for allocation of vma_filesz checkpatch: don't emit unified-diff error for rename-only patches checkpatch: don't check c99 types like uint8_t under tools checkpatch: avoid multiple line dereferences checkpatch: don't check .pl files, improve absolute path commit log test scripts/checkpatch.pl: fix spelling checkpatch: don't try to get maintained status when --no-tree is given lib/ida: document locking requirements a bit better lib/rbtree.c: fix typo in comment of ____rb_erase_color lib/Kconfig.debug: make CONFIG_STRICT_DEVMEM depend on CONFIG_DEVMEM MAINTAINERS: add drm and drm/i915 irc channels MAINTAINERS: add "C:" for URI for chat where developers hang out MAINTAINERS: add drm and drm/i915 bug filing info MAINTAINERS: add "B:" for URI where to file bugs get_maintainer: look for arbitrary letter prefixes in sections printk: add Kconfig option to set default console loglevel printk/sound: handle more message headers printk/btrfs: handle more message headers printk/kdb: handle more message headers ...
2 parents fe6bce8 + 39a0e97 commit e34bac7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+1550
-1041
lines changed

Documentation/devicetree/booting-without-of.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -974,6 +974,13 @@ compatibility.
974974
4Gb. Some vendors prefer splitting those ranges into smaller
975975
segments, but the kernel doesn't care.
976976

977+
Additional properties:
978+
979+
- hotpluggable : The presence of this property provides an explicit
980+
hint to the operating system that this memory may potentially be
981+
removed later. The kernel can take this into consideration when
982+
doing nonmovable allocations and when laying out memory zones.
983+
977984
e) The /chosen node
978985

979986
This node is a bit "special". Normally, that's where Open Firmware

Documentation/filesystems/proc.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ read the file /proc/PID/status:
191191
CapPrm: 0000000000000000
192192
CapEff: 0000000000000000
193193
CapBnd: ffffffffffffffff
194+
NoNewPrivs: 0
194195
Seccomp: 0
195196
voluntary_ctxt_switches: 0
196197
nonvoluntary_ctxt_switches: 1
@@ -262,6 +263,7 @@ Table 1-2: Contents of the status files (as of 4.1)
262263
CapPrm bitmap of permitted capabilities
263264
CapEff bitmap of effective capabilities
264265
CapBnd bitmap of capabilities bounding set
266+
NoNewPrivs no_new_privs, like prctl(PR_GET_NO_NEW_PRIV, ...)
265267
Seccomp seccomp mode, like prctl(PR_GET_SECCOMP, ...)
266268
Cpus_allowed mask of CPUs on which this process may run
267269
Cpus_allowed_list Same as previous, but in "list format"

Documentation/kernel-parameters.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2397,7 +2397,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
23972397
that the amount of memory usable for all allocations
23982398
is not too small.
23992399

2400-
movable_node [KNL,X86] Boot-time switch to enable the effects
2400+
movable_node [KNL] Boot-time switch to enable the effects
24012401
of CONFIG_MOVABLE_NODE=y. See mm/Kconfig for details.
24022402

24032403
MTD_Partition= [MTD]

Documentation/vm/transhuge.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ or enable it back by writing 1:
136136
echo 0 >/sys/kernel/mm/transparent_hugepage/use_zero_page
137137
echo 1 >/sys/kernel/mm/transparent_hugepage/use_zero_page
138138

139+
Some userspace (such as a test program, or an optimized memory allocation
140+
library) may want to know the size (in bytes) of a transparent hugepage:
141+
142+
cat /sys/kernel/mm/transparent_hugepage/hpage_pmd_size
143+
139144
khugepaged will be automatically started when
140145
transparent_hugepage/enabled is set to "always" or "madvise, and it'll
141146
be automatically shutdown if it's set to "never".

MAINTAINERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ Descriptions of section entries:
7474
These reviewers should be CCed on patches.
7575
L: Mailing list that is relevant to this area
7676
W: Web-page with status/info
77+
B: URI for where to file bugs. A web-page with detailed bug
78+
filing info, a direct bug tracker link, or a mailto: URI.
79+
C: URI for chat protocol, server and channel where developers
80+
usually hang out, for example irc://server/channel.
7781
Q: Patchwork web based patch tracking system site
7882
T: SCM tree type and location.
7983
Type is one of: git, hg, quilt, stgit, topgit
@@ -4024,6 +4028,8 @@ DRM DRIVERS
40244028
M: David Airlie <airlied@linux.ie>
40254029
L: dri-devel@lists.freedesktop.org
40264030
T: git git://people.freedesktop.org/~airlied/linux
4031+
B: https://bugs.freedesktop.org/
4032+
C: irc://chat.freenode.net/dri-devel
40274033
S: Maintained
40284034
F: drivers/gpu/drm/
40294035
F: drivers/gpu/vga/
@@ -4076,6 +4082,8 @@ M: Jani Nikula <jani.nikula@linux.intel.com>
40764082
L: intel-gfx@lists.freedesktop.org
40774083
L: dri-devel@lists.freedesktop.org
40784084
W: https://01.org/linuxgraphics/
4085+
B: https://01.org/linuxgraphics/documentation/how-report-bugs
4086+
C: irc://chat.freenode.net/intel-gfx
40794087
Q: http://patchwork.freedesktop.org/project/intel-gfx/
40804088
T: git git://anongit.freedesktop.org/drm-intel
40814089
S: Supported

arch/arm/include/asm/tlb.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,8 @@ tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long addr)
186186
tlb_add_flush(tlb, addr);
187187
}
188188

189+
#define tlb_remove_huge_tlb_entry(h, tlb, ptep, address) \
190+
tlb_remove_tlb_entry(tlb, ptep, address)
189191
/*
190192
* In the case of tlb vma handling, we can optimise these away in the
191193
* case where we're doing a full MM flush. When we're doing a munmap,
@@ -211,18 +213,17 @@ tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
211213

212214
static inline bool __tlb_remove_page(struct mmu_gather *tlb, struct page *page)
213215
{
216+
tlb->pages[tlb->nr++] = page;
217+
VM_WARN_ON(tlb->nr > tlb->max);
214218
if (tlb->nr == tlb->max)
215219
return true;
216-
tlb->pages[tlb->nr++] = page;
217220
return false;
218221
}
219222

220223
static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
221224
{
222-
if (__tlb_remove_page(tlb, page)) {
225+
if (__tlb_remove_page(tlb, page))
223226
tlb_flush_mmu(tlb);
224-
__tlb_remove_page(tlb, page);
225-
}
226227
}
227228

228229
static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
@@ -231,12 +232,6 @@ static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
231232
return __tlb_remove_page(tlb, page);
232233
}
233234

234-
static inline bool __tlb_remove_pte_page(struct mmu_gather *tlb,
235-
struct page *page)
236-
{
237-
return __tlb_remove_page(tlb, page);
238-
}
239-
240235
static inline void tlb_remove_page_size(struct mmu_gather *tlb,
241236
struct page *page, int page_size)
242237
{
@@ -284,5 +279,11 @@ tlb_remove_pmd_tlb_entry(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr
284279

285280
#define tlb_migrate_finish(mm) do { } while (0)
286281

282+
#define tlb_remove_check_page_size_change tlb_remove_check_page_size_change
283+
static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb,
284+
unsigned int page_size)
285+
{
286+
}
287+
287288
#endif /* CONFIG_MMU */
288289
#endif

arch/ia64/include/asm/tlb.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -207,15 +207,15 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
207207
*/
208208
static inline bool __tlb_remove_page(struct mmu_gather *tlb, struct page *page)
209209
{
210-
if (tlb->nr == tlb->max)
211-
return true;
212-
213210
tlb->need_flush = 1;
214211

215212
if (!tlb->nr && tlb->pages == tlb->local)
216213
__tlb_alloc_page(tlb);
217214

218215
tlb->pages[tlb->nr++] = page;
216+
VM_WARN_ON(tlb->nr > tlb->max);
217+
if (tlb->nr == tlb->max)
218+
return true;
219219
return false;
220220
}
221221

@@ -236,10 +236,8 @@ static inline void tlb_flush_mmu(struct mmu_gather *tlb)
236236

237237
static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
238238
{
239-
if (__tlb_remove_page(tlb, page)) {
239+
if (__tlb_remove_page(tlb, page))
240240
tlb_flush_mmu(tlb);
241-
__tlb_remove_page(tlb, page);
242-
}
243241
}
244242

245243
static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
@@ -248,12 +246,6 @@ static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
248246
return __tlb_remove_page(tlb, page);
249247
}
250248

251-
static inline bool __tlb_remove_pte_page(struct mmu_gather *tlb,
252-
struct page *page)
253-
{
254-
return __tlb_remove_page(tlb, page);
255-
}
256-
257249
static inline void tlb_remove_page_size(struct mmu_gather *tlb,
258250
struct page *page, int page_size)
259251
{
@@ -283,6 +275,15 @@ do { \
283275
__tlb_remove_tlb_entry(tlb, ptep, addr); \
284276
} while (0)
285277

278+
#define tlb_remove_huge_tlb_entry(h, tlb, ptep, address) \
279+
tlb_remove_tlb_entry(tlb, ptep, address)
280+
281+
#define tlb_remove_check_page_size_change tlb_remove_check_page_size_change
282+
static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb,
283+
unsigned int page_size)
284+
{
285+
}
286+
286287
#define pte_free_tlb(tlb, ptep, address) \
287288
do { \
288289
tlb->need_flush = 1; \

arch/m32r/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ config NO_IOPORT_MAP
3434
def_bool y
3535

3636
config NO_DMA
37-
def_bool y
37+
def_bool n
3838

3939
config HZ
4040
int

arch/m32r/include/asm/device.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,9 @@
33
*
44
* This file is released under the GPLv2
55
*/
6-
#include <asm-generic/device.h>
6+
struct dev_archdata {
7+
struct dma_map_ops *dma_ops;
8+
};
79

10+
struct pdev_archdata {
11+
};

arch/m32r/include/asm/dma-mapping.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#ifndef _ASM_M32R_DMA_MAPPING_H
2+
#define _ASM_M32R_DMA_MAPPING_H
3+
4+
#include <linux/kernel.h>
5+
#include <linux/types.h>
6+
#include <linux/mm.h>
7+
#include <linux/scatterlist.h>
8+
#include <linux/dma-debug.h>
9+
#include <linux/io.h>
10+
11+
#define DMA_ERROR_CODE (~(dma_addr_t)0x0)
12+
13+
static inline struct dma_map_ops *get_dma_ops(struct device *dev)
14+
{
15+
if (dev && dev->archdata.dma_ops)
16+
return dev->archdata.dma_ops;
17+
return &dma_noop_ops;
18+
}
19+
20+
static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
21+
enum dma_data_direction direction)
22+
{
23+
}
24+
25+
static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
26+
{
27+
if (!dev->dma_mask)
28+
return false;
29+
return addr + size - 1 <= *dev->dma_mask;
30+
}
31+
32+
#endif /* _ASM_M32R_DMA_MAPPING_H */

arch/m32r/platforms/m32700ut/setup.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ static struct irq_chip m32700ut_lanpld_irq_type =
201201
#define lcdpldirq2port(x) (unsigned long)((int)M32700UT_LCD_ICUCR1 + \
202202
(((x) - 1) * sizeof(unsigned short)))
203203

204+
#ifdef CONFIG_USB
204205
static pld_icu_data_t lcdpld_icu_data[M32700UT_NUM_LCD_PLD_IRQ];
205206

206207
static void disable_m32700ut_lcdpld_irq(unsigned int irq)
@@ -253,6 +254,7 @@ static struct irq_chip m32700ut_lcdpld_irq_type =
253254
.irq_mask = mask_m32700ut_lcdpld,
254255
.irq_unmask = unmask_m32700ut_lcdpld,
255256
};
257+
#endif
256258

257259
void __init init_IRQ(void)
258260
{

arch/powerpc/include/asm/book3s/64/pgtable.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1009,7 +1009,8 @@ static inline void pmdp_huge_split_prepare(struct vm_area_struct *vma,
10091009
#define pmd_move_must_withdraw pmd_move_must_withdraw
10101010
struct spinlock;
10111011
static inline int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl,
1012-
struct spinlock *old_pmd_ptl)
1012+
struct spinlock *old_pmd_ptl,
1013+
struct vm_area_struct *vma)
10131014
{
10141015
if (radix_enabled())
10151016
return false;
@@ -1020,6 +1021,16 @@ static inline int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl,
10201021
*/
10211022
return true;
10221023
}
1024+
1025+
1026+
#define arch_needs_pgtable_deposit arch_needs_pgtable_deposit
1027+
static inline bool arch_needs_pgtable_deposit(void)
1028+
{
1029+
if (radix_enabled())
1030+
return false;
1031+
return true;
1032+
}
1033+
10231034
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
10241035
#endif /* __ASSEMBLY__ */
10251036
#endif /* _ASM_POWERPC_BOOK3S_64_PGTABLE_H_ */

arch/powerpc/include/asm/tlb.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#define tlb_start_vma(tlb, vma) do { } while (0)
2929
#define tlb_end_vma(tlb, vma) do { } while (0)
3030
#define __tlb_remove_tlb_entry __tlb_remove_tlb_entry
31+
#define tlb_remove_check_page_size_change tlb_remove_check_page_size_change
3132

3233
extern void tlb_flush(struct mmu_gather *tlb);
3334

@@ -46,6 +47,21 @@ static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep,
4647
#endif
4748
}
4849

50+
static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb,
51+
unsigned int page_size)
52+
{
53+
if (!tlb->page_size)
54+
tlb->page_size = page_size;
55+
else if (tlb->page_size != page_size) {
56+
tlb_flush_mmu(tlb);
57+
/*
58+
* update the page size after flush for the new
59+
* mmu_gather.
60+
*/
61+
tlb->page_size = page_size;
62+
}
63+
}
64+
4965
#ifdef CONFIG_SMP
5066
static inline int mm_is_core_local(struct mm_struct *mm)
5167
{

arch/powerpc/mm/numa.c

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,7 +1085,7 @@ static int hot_add_node_scn_to_nid(unsigned long scn_addr)
10851085
int hot_add_scn_to_nid(unsigned long scn_addr)
10861086
{
10871087
struct device_node *memory = NULL;
1088-
int nid, found = 0;
1088+
int nid;
10891089

10901090
if (!numa_enabled || (min_common_depth < 0))
10911091
return first_online_node;
@@ -1101,17 +1101,6 @@ int hot_add_scn_to_nid(unsigned long scn_addr)
11011101
if (nid < 0 || !node_online(nid))
11021102
nid = first_online_node;
11031103

1104-
if (NODE_DATA(nid)->node_spanned_pages)
1105-
return nid;
1106-
1107-
for_each_online_node(nid) {
1108-
if (NODE_DATA(nid)->node_spanned_pages) {
1109-
found = 1;
1110-
break;
1111-
}
1112-
}
1113-
1114-
BUG_ON(!found);
11151104
return nid;
11161105
}
11171106

arch/s390/include/asm/tlb.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,6 @@ static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
104104
return __tlb_remove_page(tlb, page);
105105
}
106106

107-
static inline bool __tlb_remove_pte_page(struct mmu_gather *tlb,
108-
struct page *page)
109-
{
110-
return __tlb_remove_page(tlb, page);
111-
}
112-
113107
static inline void tlb_remove_page_size(struct mmu_gather *tlb,
114108
struct page *page, int page_size)
115109
{
@@ -162,5 +156,13 @@ static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud,
162156
#define tlb_remove_tlb_entry(tlb, ptep, addr) do { } while (0)
163157
#define tlb_remove_pmd_tlb_entry(tlb, pmdp, addr) do { } while (0)
164158
#define tlb_migrate_finish(mm) do { } while (0)
159+
#define tlb_remove_huge_tlb_entry(h, tlb, ptep, address) \
160+
tlb_remove_tlb_entry(tlb, ptep, address)
161+
162+
#define tlb_remove_check_page_size_change tlb_remove_check_page_size_change
163+
static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb,
164+
unsigned int page_size)
165+
{
166+
}
165167

166168
#endif /* _S390_TLB_H */

arch/s390/mm/gmap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1015,7 +1015,7 @@ static inline void gmap_insert_rmap(struct gmap *sg, unsigned long vmaddr,
10151015
if (slot) {
10161016
rmap->next = radix_tree_deref_slot_protected(slot,
10171017
&sg->guest_table_lock);
1018-
radix_tree_replace_slot(slot, rmap);
1018+
radix_tree_replace_slot(&sg->host_to_rmap, slot, rmap);
10191019
} else {
10201020
rmap->next = NULL;
10211021
radix_tree_insert(&sg->host_to_rmap, vmaddr >> PAGE_SHIFT,

0 commit comments

Comments
 (0)