lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d431c2cf-22bf-13be-05e5-c93512ac9ae5@nvidia.com>
Date:   Sun, 13 Oct 2019 23:43:10 -0700
From:   John Hubbard <jhubbard@...dia.com>
To:     kbuild test robot <lkp@...el.com>
CC:     <kbuild-all@...ts.01.org>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Christoph Hellwig <hch@...radead.org>,
        "Aneesh Kumar K . V" <aneesh.kumar@...ux.ibm.com>,
        Keith Busch <keith.busch@...el.com>,
        Ira Weiny <ira.weiny@...el.com>,
        LKML <linux-kernel@...r.kernel.org>, <linux-mm@...ck.org>,
        Christoph Hellwig <hch@....de>
Subject: Re: [PATCH 2/2] mm/gup: fix a misnamed "write" argument: should be
 "flags"

On 10/13/19 11:12 PM, kbuild test robot wrote:
> Hi John,
> 
> Thank you for the patch! Yet something to improve:
> 
> [auto build test ERROR on linus/master]
> [cannot apply to v5.4-rc3 next-20191011]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
> 
> url:    https://github.com/0day-ci/linux/commits/John-Hubbard/gup-c-gup_benchmark-c-trivial-fixes-before-the-storm/20191014-114158
> config: powerpc-defconfig (attached as .config)
> compiler: powerpc64-linux-gcc (GCC) 7.4.0
> reproduce:
>          wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          # save the attached .config to linux build tree
>          GCC_VERSION=7.4.0 make.cross ARCH=powerpc
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@...el.com>
> 
> All errors (new ones prefixed by >>):
> 
>     mm/gup.c: In function 'gup_hugepte':
>>> mm/gup.c:1990:33: error: 'write' undeclared (first use in this function); did you mean 'writeq'?
>       if (!pte_access_permitted(pte, write))
>                                      ^~~~~
>                                      writeq
>     mm/gup.c:1990:33: note: each undeclared identifier is reported only once for each function it appears in
> 

OK, so this shows that my cross-compiler test scripts are faulty lately,
sorry I missed this.

But more importantly, the above missed case is an example of when "write" really
means "write", as opposed to meaning flags.

Please put this patch on hold or drop it, until we hear from the authors as to how
they would like to resolve this. I suspect it will end up as something like:

	bool write = (flags & FOLL_WRITE);

...perhaps?


thanks,
-- 
John Hubbard
NVIDIA


> vim +1990 mm/gup.c
> 
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1974
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1975  static int gup_hugepte(pte_t *ptep, unsigned long sz, unsigned long addr,
> cc492e4c15e804 John Hubbard      2019-10-13  1976  		       unsigned long end, int flags, struct page **pages,
> cc492e4c15e804 John Hubbard      2019-10-13  1977  		       int *nr)
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1978  {
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1979  	unsigned long pte_end;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1980  	struct page *head, *page;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1981  	pte_t pte;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1982  	int refs;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1983
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1984  	pte_end = (addr + sz) & ~(sz-1);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1985  	if (pte_end < end)
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1986  		end = pte_end;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1987
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1988  	pte = READ_ONCE(*ptep);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1989
> cbd34da7dc9afd Christoph Hellwig 2019-07-11 @1990  	if (!pte_access_permitted(pte, write))
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1991  		return 0;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1992
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1993  	/* hugepages are never "special" */
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1994  	VM_BUG_ON(!pfn_valid(pte_pfn(pte)));
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1995
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1996  	refs = 0;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1997  	head = pte_page(pte);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1998
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  1999  	page = head + ((addr & (sz-1)) >> PAGE_SHIFT);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2000  	do {
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2001  		VM_BUG_ON(compound_head(page) != head);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2002  		pages[*nr] = page;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2003  		(*nr)++;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2004  		page++;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2005  		refs++;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2006  	} while (addr += PAGE_SIZE, addr != end);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2007
> 01a369160bbea4 Christoph Hellwig 2019-07-11  2008  	head = try_get_compound_head(head, refs);
> 01a369160bbea4 Christoph Hellwig 2019-07-11  2009  	if (!head) {
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2010  		*nr -= refs;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2011  		return 0;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2012  	}
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2013
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2014  	if (unlikely(pte_val(pte) != pte_val(*ptep))) {
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2015  		/* Could be optimized better */
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2016  		*nr -= refs;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2017  		while (refs--)
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2018  			put_page(head);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2019  		return 0;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2020  	}
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2021
> 520b4a4496f12b Christoph Hellwig 2019-07-11  2022  	SetPageReferenced(head);
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2023  	return 1;
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2024  }
> cbd34da7dc9afd Christoph Hellwig 2019-07-11  2025
> 
> :::::: The code at line 1990 was first introduced by commit
> :::::: cbd34da7dc9afd521e0bea5e7d12701f4a9da7c7 mm: move the powerpc hugepd code to mm/gup.c
> 
> :::::: TO: Christoph Hellwig <hch@....de>
> :::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ