Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jul 2013 09:24:03 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r253140 - head/sys/amd64/amd64
Message-ID:  <201307100924.r6A9O3Br070468@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Wed Jul 10 09:24:03 2013
New Revision: 253140
URL: http://svnweb.freebsd.org/changeset/base/253140

Log:
  Clear m->object for the page taken from the delayed free list for
  reuse as the pv chink page in reclaim_pv_chunk().  Having non-NULL
  m->object is wrong for page not owned by an object and confuses both
  vm_page_free_toq() and vm_page_remove() when the page is freed later.
  
  Reported and tested by:	pho
  Sponsored by:	The FreeBSD Foundation
  MFC after:	3 days

Modified:
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Wed Jul 10 08:21:09 2013	(r253139)
+++ head/sys/amd64/amd64/pmap.c	Wed Jul 10 09:24:03 2013	(r253140)
@@ -2234,6 +2234,7 @@ reclaim_pv_chunk(pmap_t locked_pmap, str
 	if (m_pc == NULL && free != NULL) {
 		m_pc = free;
 		free = (void *)m_pc->object;
+		m_pc->object = NULL;
 		/* Recycle a freed page table page. */
 		m_pc->wire_count = 1;
 		atomic_add_int(&cnt.v_wire_count, 1);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307100924.r6A9O3Br070468>