From: Stephen Rothwell Date: Wed, 4 Jun 2014 07:39:30 +0000 (+1000) Subject: Merge branch 'akpm-current/current' X-Git-Tag: next-20140604~2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=8e3717addb0e3605ed33755de87e355622aaccca;p=karo-tx-linux.git Merge branch 'akpm-current/current' Conflicts: arch/arm/include/asm/Kbuild arch/powerpc/include/asm/topology.h fs/ext4/page-io.c fs/jfs/super.c kernel/kexec.c mm/memcontrol.c --- 8e3717addb0e3605ed33755de87e355622aaccca diff --cc MAINTAINERS index 3ecd69066f8d,4bb413e6bcf8..d21c30d41a6f --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -4402,24 -4377,15 +4402,21 @@@ L: netdev@vger.kernel.or S: Supported F: drivers/net/ethernet/ibm/ibmveth.* -IBM Power Virtual SCSI/FC Device Drivers -M: Robert Jennings +IBM Power Virtual SCSI Device Drivers +M: Nathan Fontenot L: linux-scsi@vger.kernel.org S: Supported -F: drivers/scsi/ibmvscsi/ -X: drivers/scsi/ibmvscsi/ibmvstgt.c +F: drivers/scsi/ibmvscsi/ibmvscsi* +F: drivers/scsi/ibmvscsi/viosrp.h + +IBM Power Virtual FC Device Drivers +M: Brian King +L: linux-scsi@vger.kernel.org +S: Supported +F: drivers/scsi/ibmvscsi/ibmvfc* IBM ServeRAID RAID DRIVER - P: Jack Hammer - M: Dave Jeffery - W: http://www.developer.ibm.com/welcome/netfinity/serveraid.html - S: Supported + S: Orphan F: drivers/scsi/ips.* ICH LPC AND GPIO DRIVER diff --cc arch/arm/include/asm/Kbuild index f5a357601983,2d95820276fd..70cd84eb7fda --- a/arch/arm/include/asm/Kbuild +++ b/arch/arm/include/asm/Kbuild @@@ -21,7 -21,7 +21,8 @@@ generic-y += parport. generic-y += poll.h generic-y += preempt.h generic-y += resource.h +generic-y += rwsem.h + generic-y += scatterlist.h generic-y += sections.h generic-y += segment.h generic-y += sembuf.h diff --cc arch/x86/mm/init_64.c index bdcde58ca9ed,b92591fa8970..df1a9927ad29 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@@ -1226,12 -1218,24 +1226,15 @@@ int in_gate_area(struct mm_struct *mm, */ int in_gate_area_no_mm(unsigned long addr) { - return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END); -} - -const char *arch_vma_name(struct vm_area_struct *vma) -{ - if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso) - return "[vdso]"; - if (vma == &gate_vma) - return "[vsyscall]"; - return NULL; + return (addr & PAGE_MASK) == VSYSCALL_ADDR; } - #ifdef CONFIG_X86_UV - unsigned long memory_block_size_bytes(void) + static unsigned long probe_memory_block_size(void) { + /* start from 2g */ + unsigned long bz = 1UL<<31; + + #ifdef CONFIG_X86_UV if (is_uv_system()) { printk(KERN_INFO "UV: memory block size 2GB\n"); return 2UL * 1024 * 1024 * 1024; diff --cc fs/ext4/page-io.c index b6a3804a9855,1a64e7a52b84..b24a2541a9ba --- a/fs/ext4/page-io.c +++ b/fs/ext4/page-io.c @@@ -415,23 -414,9 +415,23 @@@ int ext4_bio_write_page(struct ext4_io_ BUG_ON(!PageLocked(page)); BUG_ON(PageWriteback(page)); - set_page_writeback(page); + if (keep_towrite) + set_page_writeback_keepwrite(page); + else + set_page_writeback(page); ClearPageError(page); + /* - * Comments copied from block_write_full_page_endio: ++ * Comments copied from block_write_full_page: + * + * The page straddles i_size. It must be zeroed out on each and every + * writepage invocation because it may be mmapped. "A file is mapped + * in multiples of the page size. For a file that is not a multiple of + * the page size, the remaining memory is zeroed when mapped, and + * writes to that region are not written out to the file." + */ + if (len < PAGE_CACHE_SIZE) + zero_user_segment(page, len, PAGE_CACHE_SIZE); /* * In the first loop we prepare and mark buffers to submit. We have to * mark all buffers in the page before submitting so that diff --cc kernel/kexec.c index 28c57069ef68,bf0b929e7f94..369f41a94124 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@@ -1683,15 -1679,7 +1679,15 @@@ int kernel_kexec(void kexec_in_progress = true; kernel_restart_prepare(NULL); migrate_to_reboot_cpu(); + + /* + * migrate_to_reboot_cpu() disables CPU hotplug assuming that + * no further code needs to use CPU hotplug (which is true in + * the reboot case). However, the kexec path depends on using + * CPU hotplug again; so re-enable it here. + */ + cpu_hotplug_enable(); - printk(KERN_EMERG "Starting new kernel\n"); + pr_emerg("Starting new kernel\n"); machine_shutdown(); } diff --cc mm/memcontrol.c index 9e71ad50d71c,546d58e13f1f..39a8e90ac78d --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@@ -5448,22 -5335,14 +5340,14 @@@ static int mem_cgroup_swappiness_write( struct cftype *cft, u64 val) { struct mem_cgroup *memcg = mem_cgroup_from_css(css); - struct mem_cgroup *parent = mem_cgroup_from_css(memcg->css.parent); - if (val > 100 || !parent) + if (val > 100) return -EINVAL; - mutex_lock(&memcg_create_mutex); - - /* If under hierarchy, only empty-root can set this value */ - if ((parent->use_hierarchy) || memcg_has_children(memcg)) { - mutex_unlock(&memcg_create_mutex); - return -EINVAL; - } - - memcg->swappiness = val; - - mutex_unlock(&memcg_create_mutex); - if (css_parent(css)) ++ if (css->parent) + memcg->swappiness = val; + else + vm_swappiness = val; return 0; } @@@ -5795,18 -5674,11 +5679,11 @@@ static int mem_cgroup_oom_control_write struct cftype *cft, u64 val) { struct mem_cgroup *memcg = mem_cgroup_from_css(css); - struct mem_cgroup *parent = mem_cgroup_from_css(memcg->css.parent); /* cannot set to root cgroup and only 0 and 1 are allowed */ - if (!parent || !((val == 0) || (val == 1))) - if (!css_parent(css) || !((val == 0) || (val == 1))) ++ if (!css->parent || !((val == 0) || (val == 1))) return -EINVAL; - mutex_lock(&memcg_create_mutex); - /* oom-kill-disable is a flag for subhierarchy. */ - if ((parent->use_hierarchy) || memcg_has_children(memcg)) { - mutex_unlock(&memcg_create_mutex); - return -EINVAL; - } memcg->oom_kill_disable = val; if (!val) memcg_oom_recover(memcg); diff --cc mm/mmap.c index 52bbc9514d9d,8a56d39df4ed..ced5efcdd4b6 --- a/mm/mmap.c +++ b/mm/mmap.c @@@ -2992,13 -2961,10 +2991,11 @@@ int install_special_mapping(struct mm_s unsigned long addr, unsigned long len, unsigned long vm_flags, struct page **pages) { - struct vm_area_struct *vma = _install_special_mapping(mm, - addr, len, vm_flags, pages); + struct vm_area_struct *vma = __install_special_mapping( + mm, addr, len, vm_flags, &legacy_special_mapping_vmops, + (void *)pages); - if (IS_ERR(vma)) - return PTR_ERR(vma); - return 0; + return PTR_ERR_OR_ZERO(vma); } static DEFINE_MUTEX(mm_all_locks_mutex);