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]
Date:	Tue, 10 Jun 2014 02:21:42 +0100
From:	Ben Hutchings <ben@...adent.org.uk>
To:	Hugh Dickins <hughd@...gle.com>
Cc:	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	linux-kernel@...r.kernel.org, stable@...r.kernel.org,
	Mel Gorman <mgorman@...e.de>, Rik van Riel <riel@...hat.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Yijing Wang <wangyijing@...wei.com>,
	Will Deacon <will.deacon@....com>
Subject: Re: [PATCH 3.4 47/88] mm: add kmap_to_page()

On Mon, 2014-06-09 at 18:15 -0700, Hugh Dickins wrote:
> On Mon, 9 Jun 2014, Greg Kroah-Hartman wrote:
> 
> > 3.4-stable review patch.  If anyone has any objections, please let me know.
> > 
> > ------------------
> > 
> > From: Ben Hutchings <ben@...adent.org.uk>
> > 
> > commit fcb8996728fb59eddf84678df7cb213b2c9a2e26 upstream.
> > 
> > This is extracted from Mel Gorman's commit 5a178119b0fb ('mm: add
> > support for direct_IO to highmem pages') upstream.
> > 
> > Required to backport commit b9cdc88df8e6 ('virtio: 9p: correctly pass
> > physical address to userspace for high pages').
> > 
> > Cc: Mel Gorman <mgorman@...e.de>
> > Cc: Rik van Riel <riel@...hat.com>
> > Cc: Andrew Morton <akpm@...ux-foundation.org>
> > Signed-off-by: Ben Hutchings <ben@...adent.org.uk>
> > Cc: Yijing Wang <wangyijing@...wei.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> > 
> > ---
> >  include/linux/highmem.h |    7 +++++++
> >  mm/highmem.c            |   12 ++++++++++++
> >  2 files changed, 19 insertions(+)
> > 
> > --- a/include/linux/highmem.h
> > +++ b/include/linux/highmem.h
> > @@ -39,10 +39,17 @@ extern unsigned long totalhigh_pages;
> >  
> >  void kmap_flush_unused(void);
> >  
> > +struct page *kmap_to_page(void *addr);
> > +
> >  #else /* CONFIG_HIGHMEM */
> >  
> >  static inline unsigned int nr_free_highpages(void) { return 0; }
> >  
> > +static inline struct page *kmap_to_page(void *addr)
> > +{
> > +	return virt_to_page(addr);
> > +}
> > +
> >  #define totalhigh_pages 0UL
> >  
> >  #ifndef ARCH_HAS_KMAP
> > --- a/mm/highmem.c
> > +++ b/mm/highmem.c
> > @@ -94,6 +94,18 @@ static DECLARE_WAIT_QUEUE_HEAD(pkmap_map
> >  		do { spin_unlock(&kmap_lock); (void)(flags); } while (0)
> >  #endif
> >  
> > +struct page *kmap_to_page(void *vaddr)
> > +{
> > +	unsigned long addr = (unsigned long)vaddr;
> > +
> > +	if (addr >= PKMAP_ADDR(0) && addr <= PKMAP_ADDR(LAST_PKMAP)) {
> > +		int i = (addr - PKMAP_ADDR(0)) >> PAGE_SHIFT;
> > +		return pte_page(pkmap_page_table[i]);
> > +	}
> > +
> > +	return virt_to_page(addr);
> > +}
> > +
> >  static void flush_all_zero_pkmaps(void)
> >  {
> >  	int i;
> 
> I think this needs the following on top:
> 
> commit 498c2280212327858e521e9d21345d4cc2637f54
> Author: Will Deacon <will.deacon@....com>
> Date:   Fri Nov 16 14:15:00 2012 -0800
> 
>     mm: highmem: don't treat PKMAP_ADDR(LAST_PKMAP) as a highmem address
[...]

Thanks Hugh, I've queued this up for 3.2 (where I previously added
kmap_to_page()).

Ben.

-- 
Ben Hutchings

Download attachment "signature.asc" of type "application/pgp-signature" (829 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ