From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7704541813489146175==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: [android-common:android13-5.15 2/9] mm/mmap.c:1815:12: error: too few arguments to function 'vma_merge' Date: Wed, 19 Jan 2022 13:03:13 +0800 Message-ID: <202201191342.IuLE52KL-lkp@intel.com> List-Id: --===============7704541813489146175== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://android.googlesource.com/kernel/common android13-5.15 head: 2c37ba03094d66f3dcb478ef7aa2aa9f737089f7 commit: c7c68b81e19379204a80515cf1b5c444b0128ba0 [2/9] Revert "ANDROID: mm:= fix up new call to vma_merge()" config: i386-tinyconfig (https://download.01.org/0day-ci/archive/20220119/2= 02201191342.IuLE52KL-lkp(a)intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=3D1 build): git remote add android-common https://android.googlesource.com/kern= el/common git fetch --no-tags android-common android13-5.15 git checkout c7c68b81e19379204a80515cf1b5c444b0128ba0 # save the config file to linux build tree mkdir build_dir make W=3D1 O=3Dbuild_dir ARCH=3Di386 SHELL=3D/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Note: the android-common/android13-5.15 HEAD 2c37ba03094d66f3dcb478ef7aa2aa= 9f737089f7 builds fine. It only hurts bisectability. All errors (new ones prefixed by >>): mm/mmap.c: In function 'mmap_region': >> mm/mmap.c:1815:12: error: too few arguments to function 'vma_merge' 1815 | merge =3D vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma= ->vm_flags, | ^~~~~~~~~ mm/mmap.c:1163:24: note: declared here 1163 | struct vm_area_struct *vma_merge(struct mm_struct *mm, | ^~~~~~~~~ vim +/vma_merge +1815 mm/mmap.c fc8744adc870a8d Linus Torvalds 2009-01-31 1724 = 0165ab443556bdf Miklos Szeredi 2007-07-15 1725 unsigned long mmap_= region(struct file *file, unsigned long addr, 897ab3e0c49e24b Mike Rapoport 2017-02-24 1726 unsigned long len= , vm_flags_t vm_flags, unsigned long pgoff, 897ab3e0c49e24b Mike Rapoport 2017-02-24 1727 struct list_head = *uf) 0165ab443556bdf Miklos Szeredi 2007-07-15 1728 { 0165ab443556bdf Miklos Szeredi 2007-07-15 1729 struct mm_struct *= mm =3D current->mm; d70cec8983241a6 Miaohe Lin 2020-08-06 1730 struct vm_area_str= uct *vma, *prev, *merge; 0165ab443556bdf Miklos Szeredi 2007-07-15 1731 int error; 0165ab443556bdf Miklos Szeredi 2007-07-15 1732 struct rb_node **r= b_link, *rb_parent; 0165ab443556bdf Miklos Szeredi 2007-07-15 1733 unsigned long char= ged =3D 0; 0165ab443556bdf Miklos Szeredi 2007-07-15 1734 = e8420a8ece80b3f Cyril Hrubis 2013-04-29 1735 /* Check against a= ddress space limit. */ 84638335900f199 Konstantin Khlebnikov 2016-01-14 1736 if (!may_expand_vm= (mm, vm_flags, len >> PAGE_SHIFT)) { e8420a8ece80b3f Cyril Hrubis 2013-04-29 1737 unsigned long nr_= pages; e8420a8ece80b3f Cyril Hrubis 2013-04-29 1738 = e8420a8ece80b3f Cyril Hrubis 2013-04-29 1739 /* e8420a8ece80b3f Cyril Hrubis 2013-04-29 1740 * MAP_FIXED may = remove pages of mappings that intersects with e8420a8ece80b3f Cyril Hrubis 2013-04-29 1741 * requested mapp= ing. Account for the pages it would unmap. e8420a8ece80b3f Cyril Hrubis 2013-04-29 1742 */ e8420a8ece80b3f Cyril Hrubis 2013-04-29 1743 nr_pages =3D coun= t_vma_pages_range(mm, addr, addr + len); e8420a8ece80b3f Cyril Hrubis 2013-04-29 1744 = 84638335900f199 Konstantin Khlebnikov 2016-01-14 1745 if (!may_expand_v= m(mm, vm_flags, 84638335900f199 Konstantin Khlebnikov 2016-01-14 1746 (len >> PAGE_S= HIFT) - nr_pages)) e8420a8ece80b3f Cyril Hrubis 2013-04-29 1747 return -ENOMEM; e8420a8ece80b3f Cyril Hrubis 2013-04-29 1748 } e8420a8ece80b3f Cyril Hrubis 2013-04-29 1749 = fb8090b699c3e14 Liam R. Howlett 2020-10-17 1750 /* Clear old maps,= set up prev, rb_link, rb_parent, and uf */ fb8090b699c3e14 Liam R. Howlett 2020-10-17 1751 if (munmap_vma_ran= ge(mm, addr, len, &prev, &rb_link, &rb_parent, uf)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 1752 return -ENOMEM; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1753 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 1754 * Private writabl= e mapping: check memory availability ^1da177e4c3f415 Linus Torvalds 2005-04-16 1755 */ 5a6fe1259506760 Mel Gorman 2009-02-10 1756 if (accountable_ma= pping(file, vm_flags)) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 1757 charged =3D len >= > PAGE_SHIFT; 191c542442fdf53 Al Viro 2012-02-13 1758 if (security_vm_e= nough_memory_mm(mm, charged)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 1759 return -ENOMEM; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1760 vm_flags |=3D VM_= ACCOUNT; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1761 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 1762 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1763 /* de33c8db5910cda Linus Torvalds 2009-01-29 1764 * Can we just exp= and an old mapping? ^1da177e4c3f415 Linus Torvalds 2005-04-16 1765 */ 19a809afe2fe089 Andrea Arcangeli 2015-09-04 1766 vma =3D vma_merge(= mm, prev, addr, addr + len, vm_flags, 60500a42286de35 Colin Cross 2015-10-27 1767 NULL, file, pgof= f, NULL, NULL_VM_UFFD_CTX, NULL); ba470de43188cdb Rik van Riel 2008-10-18 1768 if (vma) ^1da177e4c3f415 Linus Torvalds 2005-04-16 1769 goto out; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1770 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1771 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 1772 * Determine the o= bject being mapped and call the appropriate ^1da177e4c3f415 Linus Torvalds 2005-04-16 1773 * specific mapper= . the address has already been validated, but ^1da177e4c3f415 Linus Torvalds 2005-04-16 1774 * not unmapped, b= ut the maps are removed from the list. ^1da177e4c3f415 Linus Torvalds 2005-04-16 1775 */ 490fc053865c9cc Linus Torvalds 2018-07-21 1776 vma =3D vm_area_al= loc(mm); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1777 if (!vma) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 1778 error =3D -ENOMEM; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1779 goto unacct_error; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1780 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 1781 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1782 vma->vm_start =3D = addr; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1783 vma->vm_end =3D ad= dr + len; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1784 vma->vm_flags =3D = vm_flags; 3ed75eb8f1cd895 Coly Li 2007-10-18 1785 vma->vm_page_prot = =3D vm_get_page_prot(vm_flags); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1786 vma->vm_pgoff =3D = pgoff; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1787 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1788 if (file) { 4bb5f5d9395bc11 David Herrmann 2014-08-08 1789 if (vm_flags & VM= _SHARED) { 4bb5f5d9395bc11 David Herrmann 2014-08-08 1790 error =3D mappin= g_map_writable(file->f_mapping); 4bb5f5d9395bc11 David Herrmann 2014-08-08 1791 if (error) 8d0920bde5eb8ec David Hildenbrand 2021-04-22 1792 goto free_vma; 4bb5f5d9395bc11 David Herrmann 2014-08-08 1793 } 4bb5f5d9395bc11 David Herrmann 2014-08-08 1794 = cb0942b81249798 Al Viro 2012-08-27 1795 vma->vm_file =3D = get_file(file); f74ac01520c9f6d Miklos Szeredi 2017-02-20 1796 error =3D call_mm= ap(file, vma); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1797 if (error) ^1da177e4c3f415 Linus Torvalds 2005-04-16 1798 goto unmap_and_f= ree_vma; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1799 = 309d08d9b3a3659 Liu Zixian 2020-12-05 1800 /* Can addr have = changed?? 309d08d9b3a3659 Liu Zixian 2020-12-05 1801 * 309d08d9b3a3659 Liu Zixian 2020-12-05 1802 * Answer: Yes, s= everal device drivers can do it in their 309d08d9b3a3659 Liu Zixian 2020-12-05 1803 * f_op->= mmap method. -DaveM 309d08d9b3a3659 Liu Zixian 2020-12-05 1804 * Bug: If addr i= s changed, prev, rb_link, rb_parent should 309d08d9b3a3659 Liu Zixian 2020-12-05 1805 * be update= d for vma_link() 309d08d9b3a3659 Liu Zixian 2020-12-05 1806 */ 309d08d9b3a3659 Liu Zixian 2020-12-05 1807 WARN_ON_ONCE(addr= !=3D vma->vm_start); 309d08d9b3a3659 Liu Zixian 2020-12-05 1808 = 309d08d9b3a3659 Liu Zixian 2020-12-05 1809 addr =3D vma->vm_= start; 309d08d9b3a3659 Liu Zixian 2020-12-05 1810 = d70cec8983241a6 Miaohe Lin 2020-08-06 1811 /* If vm_flags ch= anged after call_mmap(), we should try merge vma again d70cec8983241a6 Miaohe Lin 2020-08-06 1812 * as we may succ= eed this time. d70cec8983241a6 Miaohe Lin 2020-08-06 1813 */ d70cec8983241a6 Miaohe Lin 2020-08-06 1814 if (unlikely(vm_f= lags !=3D vma->vm_flags && prev)) { d70cec8983241a6 Miaohe Lin 2020-08-06 @1815 merge =3D vma_me= rge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, c7c68b81e193792 Suren Baghdasaryan 2021-12-28 1816 NULL, vma->vm_f= ile, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX); d70cec8983241a6 Miaohe Lin 2020-08-06 1817 if (merge) { bc4fe4cdd602b3b Miaohe Lin 2020-10-10 1818 /* ->mmap() can= change vma->vm_file and fput the original file. So bc4fe4cdd602b3b Miaohe Lin 2020-10-10 1819 * fput the vma= ->vm_file here or we would add an extra fput for file bc4fe4cdd602b3b Miaohe Lin 2020-10-10 1820 * and cause ge= neral protection fault ultimately. bc4fe4cdd602b3b Miaohe Lin 2020-10-10 1821 */ bc4fe4cdd602b3b Miaohe Lin 2020-10-10 1822 fput(vma->vm_fi= le); d70cec8983241a6 Miaohe Lin 2020-08-06 1823 vm_area_free(vm= a); d70cec8983241a6 Miaohe Lin 2020-08-06 1824 vma =3D merge; 309d08d9b3a3659 Liu Zixian 2020-12-05 1825 /* Update vm_fl= ags to pick up the change. */ d70cec8983241a6 Miaohe Lin 2020-08-06 1826 vm_flags =3D vm= a->vm_flags; d70cec8983241a6 Miaohe Lin 2020-08-06 1827 goto unmap_writ= able; d70cec8983241a6 Miaohe Lin 2020-08-06 1828 } d70cec8983241a6 Miaohe Lin 2020-08-06 1829 } d70cec8983241a6 Miaohe Lin 2020-08-06 1830 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1831 vm_flags =3D vma-= >vm_flags; f8dbf0a7a4c5d98 Huang Shijie 2009-09-21 1832 } else if (vm_flag= s & VM_SHARED) { f8dbf0a7a4c5d98 Huang Shijie 2009-09-21 1833 error =3D shmem_z= ero_setup(vma); f8dbf0a7a4c5d98 Huang Shijie 2009-09-21 1834 if (error) f8dbf0a7a4c5d98 Huang Shijie 2009-09-21 1835 goto free_vma; bfd40eaff5abb9f Kirill A. Shutemov 2018-07-26 1836 } else { bfd40eaff5abb9f Kirill A. Shutemov 2018-07-26 1837 vma_set_anonymous= (vma); f8dbf0a7a4c5d98 Huang Shijie 2009-09-21 1838 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 1839 = c462ac288f2c97e Catalin Marinas 2019-11-25 1840 /* Allow architect= ures to sanity-check the vm_flags */ c462ac288f2c97e Catalin Marinas 2019-11-25 1841 if (!arch_validate= _flags(vma->vm_flags)) { c462ac288f2c97e Catalin Marinas 2019-11-25 1842 error =3D -EINVAL; c462ac288f2c97e Catalin Marinas 2019-11-25 1843 if (file) c462ac288f2c97e Catalin Marinas 2019-11-25 1844 goto unmap_and_f= ree_vma; c462ac288f2c97e Catalin Marinas 2019-11-25 1845 else c462ac288f2c97e Catalin Marinas 2019-11-25 1846 goto free_vma; c462ac288f2c97e Catalin Marinas 2019-11-25 1847 } c462ac288f2c97e Catalin Marinas 2019-11-25 1848 = 4d3d5b41a72b525 Oleg Nesterov 2008-04-28 1849 vma_link(mm, vma, = prev, rb_link, rb_parent); 4d3d5b41a72b525 Oleg Nesterov 2008-04-28 1850 /* Once vma denies= write, undo our temporary denial count */ d70cec8983241a6 Miaohe Lin 2020-08-06 1851 unmap_writable: 8d0920bde5eb8ec David Hildenbrand 2021-04-22 1852 if (file && vm_fla= gs & VM_SHARED) 4bb5f5d9395bc11 David Herrmann 2014-08-08 1853 mapping_unmap_wri= table(file->f_mapping); e86867720e61777 Oleg Nesterov 2013-09-11 1854 file =3D vma->vm_f= ile; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1855 out: cdd6c482c9ff9c5 Ingo Molnar 2009-09-21 1856 perf_event_mmap(vm= a); 0a4a93919bdc5ce Peter Zijlstra 2009-03-30 1857 = 84638335900f199 Konstantin Khlebnikov 2016-01-14 1858 vm_stat_account(mm= , vm_flags, len >> PAGE_SHIFT); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1859 if (vm_flags & VM_= LOCKED) { e1fb4a0864958fa Dave Jiang 2018-08-17 1860 if ((vm_flags & V= M_SPECIAL) || vma_is_dax(vma) || e1fb4a0864958fa Dave Jiang 2018-08-17 1861 is_vm_hugetlb_= page(vma) || e1fb4a0864958fa Dave Jiang 2018-08-17 1862 vma =3D=3D get= _gate_vma(current->mm)) de60f5f10c58d4f Eric B Munson 2015-11-05 1863 vma->vm_flags &= =3D VM_LOCKED_CLEAR_MASK; e1fb4a0864958fa Dave Jiang 2018-08-17 1864 else e1fb4a0864958fa Dave Jiang 2018-08-17 1865 mm->locked_vm += =3D (len >> PAGE_SHIFT); bebeb3d68b24bb4 Michel Lespinasse 2013-02-22 1866 } 2b144498350860b Srikar Dronamraju 2012-02-09 1867 = c7a3a88c938fbe3 Oleg Nesterov 2012-08-19 1868 if (file) c7a3a88c938fbe3 Oleg Nesterov 2012-08-19 1869 uprobe_mmap(vma); 2b144498350860b Srikar Dronamraju 2012-02-09 1870 = d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1871 /* d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1872 * New (or expande= d) vma always get soft dirty status. d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1873 * Otherwise user-= space soft-dirty page tracker won't d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1874 * be able to dist= inguish situation when vma area unmapped, d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1875 * then new mapped= in-place (which must be aimed as d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1876 * a completely ne= w data area). d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1877 */ d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1878 vma->vm_flags |=3D= VM_SOFTDIRTY; d9104d1ca966249 Cyrill Gorcunov 2013-09-11 1879 = 64e455079e1bd77 Peter Feiner 2014-10-13 1880 vma_set_page_prot(= vma); 64e455079e1bd77 Peter Feiner 2014-10-13 1881 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1882 return addr; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1883 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1884 unmap_and_free_vma: 1527f926fd04490 Christian K=C3=B6nig 2020-10-09 1885 fput(vma->vm_= file); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1886 vma->vm_file =3D N= ULL; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1887 = ^1da177e4c3f415 Linus Torvalds 2005-04-16 1888 /* Undo any partia= l mapping done by a device driver. */ e0da382c92626ad Hugh Dickins 2005-04-19 1889 unmap_region(mm, v= ma, prev, vma->vm_start, vma->vm_end); e0da382c92626ad Hugh Dickins 2005-04-19 1890 charged =3D 0; 4bb5f5d9395bc11 David Herrmann 2014-08-08 1891 if (vm_flags & VM_= SHARED) 4bb5f5d9395bc11 David Herrmann 2014-08-08 1892 mapping_unmap_wri= table(file->f_mapping); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1893 free_vma: 3928d4f5ee37cdc Linus Torvalds 2018-07-21 1894 vm_area_free(vma); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1895 unacct_error: ^1da177e4c3f415 Linus Torvalds 2005-04-16 1896 if (charged) ^1da177e4c3f415 Linus Torvalds 2005-04-16 1897 vm_unacct_memory(= charged); ^1da177e4c3f415 Linus Torvalds 2005-04-16 1898 return error; ^1da177e4c3f415 Linus Torvalds 2005-04-16 1899 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 1900 = :::::: The code at line 1815 was first introduced by commit :::::: d70cec8983241a6aafadf78e2d65bbafac87ab6a mm: mmap: merge vma after c= all_mmap() if possible :::::: TO: Miaohe Lin :::::: CC: Linus Torvalds --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============7704541813489146175==--