Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton: "8 fixes" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: MAINTAINERS: demote ARM port to "odd fixes" MAINTAINERS: correct rmk's email address mm/kmemleak.c: wait for scan completion before disabling free mm/memcontrol.c: fix parameter description mismatch mm/vmstat.c: fix vmstat_update() preemption BUG mm/page_owner: fix recursion bug after changing skip entries ipc/shm.c: add split function to shm_vm_ops mm, slab: memcg_link the SLAB's kmem_cache
This commit is contained in:
commit
68b8dffce6
32
MAINTAINERS
32
MAINTAINERS
|
@ -1060,41 +1060,42 @@ ARM PORT
|
|||
M: Russell King <linux@armlinux.org.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.armlinux.org.uk/
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git
|
||||
F: arch/arm/
|
||||
X: arch/arm/boot/dts/
|
||||
|
||||
ARM PRIMECELL AACI PL041 DRIVER
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: sound/arm/aaci.*
|
||||
|
||||
ARM PRIMECELL BUS SUPPORT
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/amba/
|
||||
F: include/linux/amba/bus.h
|
||||
|
||||
ARM PRIMECELL CLCD PL110 DRIVER
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/video/fbdev/amba-clcd.*
|
||||
|
||||
ARM PRIMECELL KMI PL050 DRIVER
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/input/serio/ambakmi.*
|
||||
F: include/linux/amba/kmi.h
|
||||
|
||||
ARM PRIMECELL MMCI PL180/1 DRIVER
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/mmc/host/mmci.*
|
||||
F: include/linux/amba/mmci.h
|
||||
|
||||
ARM PRIMECELL UART PL010 AND PL011 DRIVERS
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
S: Odd Fixes
|
||||
F: drivers/tty/serial/amba-pl01*.c
|
||||
F: include/linux/amba/serial.h
|
||||
|
||||
|
@ -8434,7 +8435,7 @@ S: Orphan
|
|||
F: drivers/net/wireless/marvell/libertas/
|
||||
|
||||
MARVELL MACCHIATOBIN SUPPORT
|
||||
M: Russell King <rmk@armlinux.org.uk>
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org
|
||||
S: Maintained
|
||||
F: arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
|
||||
|
@ -8447,7 +8448,7 @@ F: drivers/net/ethernet/marvell/mv643xx_eth.*
|
|||
F: include/linux/mv643xx.h
|
||||
|
||||
MARVELL MV88X3310 PHY DRIVER
|
||||
M: Russell King <rmk@armlinux.org.uk>
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/phy/marvell10g.c
|
||||
|
@ -12875,6 +12876,19 @@ S: Maintained
|
|||
F: drivers/net/ethernet/socionext/netsec.c
|
||||
F: Documentation/devicetree/bindings/net/socionext-netsec.txt
|
||||
|
||||
SOLIDRUN CLEARFOG SUPPORT
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
F: arch/arm/boot/dts/armada-388-clearfog*
|
||||
F: arch/arm/boot/dts/armada-38x-solidrun-*
|
||||
|
||||
SOLIDRUN CUBOX-I/HUMMINGBOARD SUPPORT
|
||||
M: Russell King <linux@armlinux.org.uk>
|
||||
S: Maintained
|
||||
F: arch/arm/boot/dts/imx6*-cubox-i*
|
||||
F: arch/arm/boot/dts/imx6*-hummingboard*
|
||||
F: arch/arm/boot/dts/imx6*-sr-*
|
||||
|
||||
SONIC NETWORK DRIVER
|
||||
M: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
L: netdev@vger.kernel.org
|
||||
|
|
12
ipc/shm.c
12
ipc/shm.c
|
@ -386,6 +386,17 @@ static int shm_fault(struct vm_fault *vmf)
|
|||
return sfd->vm_ops->fault(vmf);
|
||||
}
|
||||
|
||||
static int shm_split(struct vm_area_struct *vma, unsigned long addr)
|
||||
{
|
||||
struct file *file = vma->vm_file;
|
||||
struct shm_file_data *sfd = shm_file_data(file);
|
||||
|
||||
if (sfd->vm_ops && sfd->vm_ops->split)
|
||||
return sfd->vm_ops->split(vma, addr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
static int shm_set_policy(struct vm_area_struct *vma, struct mempolicy *new)
|
||||
{
|
||||
|
@ -510,6 +521,7 @@ static const struct vm_operations_struct shm_vm_ops = {
|
|||
.open = shm_open, /* callback for a new vm-area open */
|
||||
.close = shm_close, /* callback for when the vm-area is released */
|
||||
.fault = shm_fault,
|
||||
.split = shm_split,
|
||||
#if defined(CONFIG_NUMA)
|
||||
.set_policy = shm_set_policy,
|
||||
.get_policy = shm_get_policy,
|
||||
|
|
|
@ -1657,8 +1657,7 @@ static void start_scan_thread(void)
|
|||
}
|
||||
|
||||
/*
|
||||
* Stop the automatic memory scanning thread. This function must be called
|
||||
* with the scan_mutex held.
|
||||
* Stop the automatic memory scanning thread.
|
||||
*/
|
||||
static void stop_scan_thread(void)
|
||||
{
|
||||
|
@ -1921,12 +1920,15 @@ static void kmemleak_do_cleanup(struct work_struct *work)
|
|||
{
|
||||
stop_scan_thread();
|
||||
|
||||
mutex_lock(&scan_mutex);
|
||||
/*
|
||||
* Once the scan thread has stopped, it is safe to no longer track
|
||||
* object freeing. Ordering of the scan thread stopping and the memory
|
||||
* accesses below is guaranteed by the kthread_stop() function.
|
||||
* Once it is made sure that kmemleak_scan has stopped, it is safe to no
|
||||
* longer track object freeing. Ordering of the scan thread stopping and
|
||||
* the memory accesses below is guaranteed by the kthread_stop()
|
||||
* function.
|
||||
*/
|
||||
kmemleak_free_enabled = 0;
|
||||
mutex_unlock(&scan_mutex);
|
||||
|
||||
if (!kmemleak_found_leaks)
|
||||
__kmemleak_do_cleanup();
|
||||
|
|
|
@ -714,9 +714,9 @@ static struct mem_cgroup *get_mem_cgroup_from_mm(struct mm_struct *mm)
|
|||
* invocations for reference counting, or use mem_cgroup_iter_break()
|
||||
* to cancel a hierarchy walk before the round-trip is complete.
|
||||
*
|
||||
* Reclaimers can specify a zone and a priority level in @reclaim to
|
||||
* Reclaimers can specify a node and a priority level in @reclaim to
|
||||
* divide up the memcgs in the hierarchy among all concurrent
|
||||
* reclaimers operating on the same zone and priority.
|
||||
* reclaimers operating on the same node and priority.
|
||||
*/
|
||||
struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root,
|
||||
struct mem_cgroup *prev,
|
||||
|
@ -2299,7 +2299,7 @@ void memcg_kmem_put_cache(struct kmem_cache *cachep)
|
|||
}
|
||||
|
||||
/**
|
||||
* memcg_kmem_charge: charge a kmem page
|
||||
* memcg_kmem_charge_memcg: charge a kmem page
|
||||
* @page: page to charge
|
||||
* @gfp: reclaim mode
|
||||
* @order: allocation order
|
||||
|
|
|
@ -123,13 +123,13 @@ void __reset_page_owner(struct page *page, unsigned int order)
|
|||
static inline bool check_recursive_alloc(struct stack_trace *trace,
|
||||
unsigned long ip)
|
||||
{
|
||||
int i, count;
|
||||
int i;
|
||||
|
||||
if (!trace->nr_entries)
|
||||
return false;
|
||||
|
||||
for (i = 0, count = 0; i < trace->nr_entries; i++) {
|
||||
if (trace->entries[i] == ip && ++count == 2)
|
||||
for (i = 0; i < trace->nr_entries; i++) {
|
||||
if (trace->entries[i] == ip)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1283,6 +1283,7 @@ void __init kmem_cache_init(void)
|
|||
nr_node_ids * sizeof(struct kmem_cache_node *),
|
||||
SLAB_HWCACHE_ALIGN, 0, 0);
|
||||
list_add(&kmem_cache->list, &slab_caches);
|
||||
memcg_link_cache(kmem_cache);
|
||||
slab_state = PARTIAL;
|
||||
|
||||
/*
|
||||
|
|
|
@ -1839,9 +1839,11 @@ static void vmstat_update(struct work_struct *w)
|
|||
* to occur in the future. Keep on running the
|
||||
* update worker thread.
|
||||
*/
|
||||
preempt_disable();
|
||||
queue_delayed_work_on(smp_processor_id(), mm_percpu_wq,
|
||||
this_cpu_ptr(&vmstat_work),
|
||||
round_jiffies_relative(sysctl_stat_interval));
|
||||
preempt_enable();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue