Messages in this thread | | | Date | Sun, 17 Oct 2021 09:01:01 +0800 | From | kernel test robot <> | Subject | [vgupta-arc:topic-zol-remove 112/188] mm/memory.c:773:1: warning: no previous prototype for function 'copy_nonpresent_pte' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git topic-zol-remove head: 5d273f5d5109b942d3be84a4db0ffe05feb901d4 commit: b55091ec6890b580d5ca97add1bb56b5502e67df [112/188] xxx: dbg: uninline copy_p*_range() functions config: hexagon-randconfig-r041-20211015 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project a49f5386ce6b091da66ea7c3a1d9a588d53becf7) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git/commit/?id=b55091ec6890b580d5ca97add1bb56b5502e67df git remote add vgupta-arc https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git git fetch --no-tags vgupta-arc topic-zol-remove git checkout b55091ec6890b580d5ca97add1bb56b5502e67df # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> mm/memory.c:773:1: warning: no previous prototype for function 'copy_nonpresent_pte' [-Wmissing-prototypes] copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, ^ mm/memory.c:772:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline unsigned long ^ static >> mm/memory.c:1005:1: warning: no previous prototype for function 'copy_pte_range' [-Wmissing-prototypes] copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, ^ mm/memory.c:1004:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline int ^ static >> mm/memory.c:1129:1: warning: no previous prototype for function 'copy_pmd_range' [-Wmissing-prototypes] copy_pmd_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, ^ mm/memory.c:1128:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline int ^ static >> mm/memory.c:1166:1: warning: no previous prototype for function 'copy_pud_range' [-Wmissing-prototypes] copy_pud_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, ^ mm/memory.c:1165:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline int ^ static >> mm/memory.c:1203:1: warning: no previous prototype for function 'copy_p4d_range' [-Wmissing-prototypes] copy_p4d_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, ^ mm/memory.c:1202:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline int ^ static mm/memory.c:3717:21: warning: no previous prototype for function 'do_anonymous_page' [-Wmissing-prototypes] noinline vm_fault_t do_anonymous_page(struct vm_fault *vmf) ^ mm/memory.c:3717:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t do_anonymous_page(struct vm_fault *vmf) ^ static mm/memory.c:3833:21: warning: no previous prototype for function '__do_fault' [-Wmissing-prototypes] noinline vm_fault_t __do_fault(struct vm_fault *vmf) ^ mm/memory.c:3833:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t __do_fault(struct vm_fault *vmf) ^ static mm/memory.c:4157:21: warning: no previous prototype for function 'do_read_fault' [-Wmissing-prototypes] noinline vm_fault_t do_read_fault(struct vm_fault *vmf) ^ mm/memory.c:4157:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t do_read_fault(struct vm_fault *vmf) ^ static mm/memory.c:4186:21: warning: no previous prototype for function 'do_cow_fault' [-Wmissing-prototypes] noinline vm_fault_t do_cow_fault(struct vm_fault *vmf) ^ mm/memory.c:4186:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t do_cow_fault(struct vm_fault *vmf) ^ static mm/memory.c:4224:21: warning: no previous prototype for function 'do_shared_fault' [-Wmissing-prototypes] noinline vm_fault_t do_shared_fault(struct vm_fault *vmf) ^ mm/memory.c:4224:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t do_shared_fault(struct vm_fault *vmf) ^ static mm/memory.c:4267:21: warning: no previous prototype for function 'do_fault' [-Wmissing-prototypes] noinline vm_fault_t do_fault(struct vm_fault *vmf) ^ mm/memory.c:4267:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t do_fault(struct vm_fault *vmf) ^ static mm/memory.c:4506:21: warning: no previous prototype for function 'handle_pte_fault' [-Wmissing-prototypes] noinline vm_fault_t handle_pte_fault(struct vm_fault *vmf) ^ mm/memory.c:4506:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t handle_pte_fault(struct vm_fault *vmf) ^ static mm/memory.c:4610:21: warning: no previous prototype for function '__handle_mm_fault' [-Wmissing-prototypes] noinline vm_fault_t __handle_mm_fault(struct vm_area_struct *vma, ^ mm/memory.c:4610:10: note: declare 'static' if the function is not intended to be used outside of this translation unit noinline vm_fault_t __handle_mm_fault(struct vm_area_struct *vma, ^ static 13 warnings generated.
vim +/copy_nonpresent_pte +773 mm/memory.c
b756a3b5e7ead8f6 Alistair Popple 2021-06-30 765 ^1da177e4c3f4152 Linus Torvalds 2005-04-16 766 /* ^1da177e4c3f4152 Linus Torvalds 2005-04-16 767 * copy one vm_area from one task to the other. Assumes the page tables ^1da177e4c3f4152 Linus Torvalds 2005-04-16 768 * already present in the new task to be cleared in the whole range ^1da177e4c3f4152 Linus Torvalds 2005-04-16 769 * covered by this vma. ^1da177e4c3f4152 Linus Torvalds 2005-04-16 770 */ ^1da177e4c3f4152 Linus Torvalds 2005-04-16 771 b55091ec6890b580 Vineet Gupta 2020-12-17 772 noinline unsigned long df3a57d1f6072d07 Linus Torvalds 2020-09-23 @773 copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, 8f34f1eac3820fc2 Peter Xu 2021-06-30 774 pte_t *dst_pte, pte_t *src_pte, struct vm_area_struct *dst_vma, 8f34f1eac3820fc2 Peter Xu 2021-06-30 775 struct vm_area_struct *src_vma, unsigned long addr, int *rss) ^1da177e4c3f4152 Linus Torvalds 2005-04-16 776 { 8f34f1eac3820fc2 Peter Xu 2021-06-30 777 unsigned long vm_flags = dst_vma->vm_flags; ^1da177e4c3f4152 Linus Torvalds 2005-04-16 778 pte_t pte = *src_pte; ^1da177e4c3f4152 Linus Torvalds 2005-04-16 779 struct page *page; 0697212a411c1dae Christoph Lameter 2006-06-23 780 swp_entry_t entry = pte_to_swp_entry(pte); 0697212a411c1dae Christoph Lameter 2006-06-23 781 2022b4d18a491a57 Hugh Dickins 2014-12-02 782 if (likely(!non_swap_entry(entry))) { 570a335b8e22579e Hugh Dickins 2009-12-14 783 if (swap_duplicate(entry) < 0) 9a5cc85c407402ae Alistair Popple 2021-06-30 784 return -EIO; 570a335b8e22579e Hugh Dickins 2009-12-14 785 ^1da177e4c3f4152 Linus Torvalds 2005-04-16 786 /* make sure dst_mm is on swapoff's mmlist. */ ^1da177e4c3f4152 Linus Torvalds 2005-04-16 787 if (unlikely(list_empty(&dst_mm->mmlist))) { ^1da177e4c3f4152 Linus Torvalds 2005-04-16 788 spin_lock(&mmlist_lock); f412ac08c9861b47 Hugh Dickins 2005-10-29 789 if (list_empty(&dst_mm->mmlist)) f412ac08c9861b47 Hugh Dickins 2005-10-29 790 list_add(&dst_mm->mmlist, f412ac08c9861b47 Hugh Dickins 2005-10-29 791 &src_mm->mmlist); ^1da177e4c3f4152 Linus Torvalds 2005-04-16 792 spin_unlock(&mmlist_lock); ^1da177e4c3f4152 Linus Torvalds 2005-04-16 793 } b084d4353ff99d82 KAMEZAWA Hiroyuki 2010-03-05 794 rss[MM_SWAPENTS]++; 2022b4d18a491a57 Hugh Dickins 2014-12-02 795 } else if (is_migration_entry(entry)) { af5cdaf82238fb36 Alistair Popple 2021-06-30 796 page = pfn_swap_entry_to_page(entry); 9f9f1acd713d69fa Konstantin Khlebnikov 2012-01-20 797 eca56ff906bdd023 Jerome Marchand 2016-01-14 798 rss[mm_counter(page)]++; 9f9f1acd713d69fa Konstantin Khlebnikov 2012-01-20 799 4dd845b5a3e57ad0 Alistair Popple 2021-06-30 800 if (is_writable_migration_entry(entry) && 0697212a411c1dae Christoph Lameter 2006-06-23 801 is_cow_mapping(vm_flags)) { 0697212a411c1dae Christoph Lameter 2006-06-23 802 /* 9f9f1acd713d69fa Konstantin Khlebnikov 2012-01-20 803 * COW mappings require pages in both 9f9f1acd713d69fa Konstantin Khlebnikov 2012-01-20 804 * parent and child to be set to read. 0697212a411c1dae Christoph Lameter 2006-06-23 805 */ 4dd845b5a3e57ad0 Alistair Popple 2021-06-30 806 entry = make_readable_migration_entry( 4dd845b5a3e57ad0 Alistair Popple 2021-06-30 807 swp_offset(entry)); 0697212a411c1dae Christoph Lameter 2006-06-23 808 pte = swp_entry_to_pte(entry); c3d16e16522fe3fe Cyrill Gorcunov 2013-10-16 809 if (pte_swp_soft_dirty(*src_pte)) c3d16e16522fe3fe Cyrill Gorcunov 2013-10-16 810 pte = pte_swp_mksoft_dirty(pte); f45ec5ff16a75f96 Peter Xu 2020-04-06 811 if (pte_swp_uffd_wp(*src_pte)) f45ec5ff16a75f96 Peter Xu 2020-04-06 812 pte = pte_swp_mkuffd_wp(pte); 0697212a411c1dae Christoph Lameter 2006-06-23 813 set_pte_at(src_mm, addr, src_pte, pte); 0697212a411c1dae Christoph Lameter 2006-06-23 814 } 5042db43cc26f51e Jérôme Glisse 2017-09-08 815 } else if (is_device_private_entry(entry)) { af5cdaf82238fb36 Alistair Popple 2021-06-30 816 page = pfn_swap_entry_to_page(entry); 5042db43cc26f51e Jérôme Glisse 2017-09-08 817 5042db43cc26f51e Jérôme Glisse 2017-09-08 818 /* 5042db43cc26f51e Jérôme Glisse 2017-09-08 819 * Update rss count even for unaddressable pages, as 5042db43cc26f51e Jérôme Glisse 2017-09-08 820 * they should treated just like normal pages in this 5042db43cc26f51e Jérôme Glisse 2017-09-08 821 * respect. 5042db43cc26f51e Jérôme Glisse 2017-09-08 822 * 5042db43cc26f51e Jérôme Glisse 2017-09-08 823 * We will likely want to have some new rss counters 5042db43cc26f51e Jérôme Glisse 2017-09-08 824 * for unaddressable pages, at some point. But for now 5042db43cc26f51e Jérôme Glisse 2017-09-08 825 * keep things as they are. 5042db43cc26f51e Jérôme Glisse 2017-09-08 826 */ 5042db43cc26f51e Jérôme Glisse 2017-09-08 827 get_page(page); 5042db43cc26f51e Jérôme Glisse 2017-09-08 828 rss[mm_counter(page)]++; 5042db43cc26f51e Jérôme Glisse 2017-09-08 829 page_dup_rmap(page, false); 5042db43cc26f51e Jérôme Glisse 2017-09-08 830 5042db43cc26f51e Jérôme Glisse 2017-09-08 831 /* 5042db43cc26f51e Jérôme Glisse 2017-09-08 832 * We do not preserve soft-dirty information, because so 5042db43cc26f51e Jérôme Glisse 2017-09-08 833 * far, checkpoint/restore is the only feature that 5042db43cc26f51e Jérôme Glisse 2017-09-08 834 * requires that. And checkpoint/restore does not work 5042db43cc26f51e Jérôme Glisse 2017-09-08 835 * when a device driver is involved (you cannot easily 5042db43cc26f51e Jérôme Glisse 2017-09-08 836 * save and restore device driver state). 5042db43cc26f51e Jérôme Glisse 2017-09-08 837 */ 4dd845b5a3e57ad0 Alistair Popple 2021-06-30 838 if (is_writable_device_private_entry(entry) && 5042db43cc26f51e Jérôme Glisse 2017-09-08 839 is_cow_mapping(vm_flags)) { 4dd845b5a3e57ad0 Alistair Popple 2021-06-30 840 entry = make_readable_device_private_entry( 4dd845b5a3e57ad0 Alistair Popple 2021-06-30 841 swp_offset(entry)); 5042db43cc26f51e Jérôme Glisse 2017-09-08 842 pte = swp_entry_to_pte(entry); f45ec5ff16a75f96 Peter Xu 2020-04-06 843 if (pte_swp_uffd_wp(*src_pte)) f45ec5ff16a75f96 Peter Xu 2020-04-06 844 pte = pte_swp_mkuffd_wp(pte); 5042db43cc26f51e Jérôme Glisse 2017-09-08 845 set_pte_at(src_mm, addr, src_pte, pte); 5042db43cc26f51e Jérôme Glisse 2017-09-08 846 } b756a3b5e7ead8f6 Alistair Popple 2021-06-30 847 } else if (is_device_exclusive_entry(entry)) { b756a3b5e7ead8f6 Alistair Popple 2021-06-30 848 /* b756a3b5e7ead8f6 Alistair Popple 2021-06-30 849 * Make device exclusive entries present by restoring the b756a3b5e7ead8f6 Alistair Popple 2021-06-30 850 * original entry then copying as for a present pte. Device b756a3b5e7ead8f6 Alistair Popple 2021-06-30 851 * exclusive entries currently only support private writable b756a3b5e7ead8f6 Alistair Popple 2021-06-30 852 * (ie. COW) mappings. b756a3b5e7ead8f6 Alistair Popple 2021-06-30 853 */ b756a3b5e7ead8f6 Alistair Popple 2021-06-30 854 VM_BUG_ON(!is_cow_mapping(src_vma->vm_flags)); b756a3b5e7ead8f6 Alistair Popple 2021-06-30 855 if (try_restore_exclusive_pte(src_pte, src_vma, addr)) b756a3b5e7ead8f6 Alistair Popple 2021-06-30 856 return -EBUSY; b756a3b5e7ead8f6 Alistair Popple 2021-06-30 857 return -ENOENT; ^1da177e4c3f4152 Linus Torvalds 2005-04-16 858 } 8f34f1eac3820fc2 Peter Xu 2021-06-30 859 if (!userfaultfd_wp(dst_vma)) 8f34f1eac3820fc2 Peter Xu 2021-06-30 860 pte = pte_swp_clear_uffd_wp(pte); df3a57d1f6072d07 Linus Torvalds 2020-09-23 861 set_pte_at(dst_mm, addr, dst_pte, pte); df3a57d1f6072d07 Linus Torvalds 2020-09-23 862 return 0; ^1da177e4c3f4152 Linus Torvalds 2005-04-16 863 } ^1da177e4c3f4152 Linus Torvalds 2005-04-16 864
:::::: The code at line 773 was first introduced by commit :::::: df3a57d1f6072d07978bafa7dbd9904cdf8f3e13 mm: split out the non-present case from copy_one_pte()
:::::: TO: Linus Torvalds <torvalds@linux-foundation.org> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |