TO: Andrea Arcangeli <aarca...@redhat.com>

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/andrea/aa.git userfault15
head:   86ed496765a4ba93cdfead37329278e489eadc47
commit: df81bb0f6f5f491550c4ea7e444490a281dbd2ab [21/28] userfaultfd: 
mcopy_atomic|mfill_zeropage: UFFDIO_COPY|UFFDIO_ZEROPAGE preparation
:::::: branch date: 2 hours ago
:::::: commit date: 2 hours ago

mm/userfaultfd.c:43 mcopy_atomic_pte() warn: passing the wrong variable to 
kunmap()
mm/userfaultfd.c:86 mcopy_atomic_pte() warn: passing the wrong variable to 
kunmap()

git remote add aa git://git.kernel.org/pub/scm/linux/kernel/git/andrea/aa.git
git remote update aa
git checkout df81bb0f6f5f491550c4ea7e444490a281dbd2ab
vim +43 mm/userfaultfd.c

df81bb0f Andrea Arcangeli 2015-02-13  37  
df81bb0f Andrea Arcangeli 2015-02-13  38        page_kaddr = kmap(page);
df81bb0f Andrea Arcangeli 2015-02-13  39        ret = -EFAULT;
df81bb0f Andrea Arcangeli 2015-02-13  40        if (copy_from_user(page_kaddr, 
(const void __user *) src_addr,
df81bb0f Andrea Arcangeli 2015-02-13  41                           PAGE_SIZE))
df81bb0f Andrea Arcangeli 2015-02-13  42                goto out_kunmap_release;
df81bb0f Andrea Arcangeli 2015-02-13 @43        kunmap(page_kaddr);
df81bb0f Andrea Arcangeli 2015-02-13  44  
df81bb0f Andrea Arcangeli 2015-02-13  45        /*
df81bb0f Andrea Arcangeli 2015-02-13  46         * The memory barrier inside 
__SetPageUptodate makes sure that
df81bb0f Andrea Arcangeli 2015-02-13  47         * preceeding stores to the 
page contents become visible before
df81bb0f Andrea Arcangeli 2015-02-13  48         * the set_pte_at() write.
df81bb0f Andrea Arcangeli 2015-02-13  49         */
df81bb0f Andrea Arcangeli 2015-02-13  50        __SetPageUptodate(page);
df81bb0f Andrea Arcangeli 2015-02-13  51  
df81bb0f Andrea Arcangeli 2015-02-13  52        ret = -ENOMEM;
df81bb0f Andrea Arcangeli 2015-02-13  53        if (mem_cgroup_try_charge(page, 
dst_mm, GFP_KERNEL, &memcg))
df81bb0f Andrea Arcangeli 2015-02-13  54                goto out_release;
df81bb0f Andrea Arcangeli 2015-02-13  55  
df81bb0f Andrea Arcangeli 2015-02-13  56        _dst_pte = mk_pte(page, 
dst_vma->vm_page_prot);
df81bb0f Andrea Arcangeli 2015-02-13  57        if (dst_vma->vm_flags & 
VM_WRITE)
df81bb0f Andrea Arcangeli 2015-02-13  58                _dst_pte = 
pte_mkwrite(pte_mkdirty(_dst_pte));
df81bb0f Andrea Arcangeli 2015-02-13  59  
df81bb0f Andrea Arcangeli 2015-02-13  60        ret = -EEXIST;
df81bb0f Andrea Arcangeli 2015-02-13  61        dst_pte = 
pte_offset_map_lock(dst_mm, dst_pmd, dst_addr, &ptl);
df81bb0f Andrea Arcangeli 2015-02-13  62        if (!pte_none(*dst_pte))
df81bb0f Andrea Arcangeli 2015-02-13  63                goto 
out_release_uncharge_unlock;
df81bb0f Andrea Arcangeli 2015-02-13  64  
df81bb0f Andrea Arcangeli 2015-02-13  65        inc_mm_counter(dst_mm, 
MM_ANONPAGES);
df81bb0f Andrea Arcangeli 2015-02-13  66        page_add_new_anon_rmap(page, 
dst_vma, dst_addr);
df81bb0f Andrea Arcangeli 2015-02-13  67        mem_cgroup_commit_charge(page, 
memcg, false);
df81bb0f Andrea Arcangeli 2015-02-13  68        
lru_cache_add_active_or_unevictable(page, dst_vma);
df81bb0f Andrea Arcangeli 2015-02-13  69  
df81bb0f Andrea Arcangeli 2015-02-13  70        set_pte_at(dst_mm, dst_addr, 
dst_pte, _dst_pte);
df81bb0f Andrea Arcangeli 2015-02-13  71  
df81bb0f Andrea Arcangeli 2015-02-13  72        /* No need to invalidate - it 
was non-present before */
df81bb0f Andrea Arcangeli 2015-02-13  73        update_mmu_cache(dst_vma, 
dst_addr, dst_pte);
df81bb0f Andrea Arcangeli 2015-02-13  74  
df81bb0f Andrea Arcangeli 2015-02-13  75        pte_unmap_unlock(dst_pte, ptl);
df81bb0f Andrea Arcangeli 2015-02-13  76        ret = 0;
df81bb0f Andrea Arcangeli 2015-02-13  77  out:
df81bb0f Andrea Arcangeli 2015-02-13  78        return ret;
df81bb0f Andrea Arcangeli 2015-02-13  79  out_release_uncharge_unlock:
df81bb0f Andrea Arcangeli 2015-02-13  80        pte_unmap_unlock(dst_pte, ptl);
df81bb0f Andrea Arcangeli 2015-02-13  81        mem_cgroup_cancel_charge(page, 
memcg);
df81bb0f Andrea Arcangeli 2015-02-13  82  out_release:
df81bb0f Andrea Arcangeli 2015-02-13  83        page_cache_release(page);
df81bb0f Andrea Arcangeli 2015-02-13  84        goto out;
df81bb0f Andrea Arcangeli 2015-02-13  85  out_kunmap_release:
df81bb0f Andrea Arcangeli 2015-02-13 @86        kunmap(page_kaddr);
df81bb0f Andrea Arcangeli 2015-02-13  87        goto out_release;
df81bb0f Andrea Arcangeli 2015-02-13  88  }
df81bb0f Andrea Arcangeli 2015-02-13  89  

---
0-DAY kernel test infrastructure                Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to