Date: Mon, 17 Jan 2011 19:17:26 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r217508 - head/sys/vm Message-ID: <201101171917.p0HJHQqW010246@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: alc Date: Mon Jan 17 19:17:26 2011 New Revision: 217508 URL: http://svn.freebsd.org/changeset/base/217508 Log: Explicitly initialize the page's queue field to PQ_NONE instead of relying on PQ_NONE being zero. Redefine PQ_NONE and PQ_COUNT so that a page queue isn't allocated for PQ_NONE. Reviewed by: kib@ Modified: head/sys/vm/device_pager.c head/sys/vm/sg_pager.c head/sys/vm/vm_page.h head/sys/vm/vm_phys.c Modified: head/sys/vm/device_pager.c ============================================================================== --- head/sys/vm/device_pager.c Mon Jan 17 18:58:28 2011 (r217507) +++ head/sys/vm/device_pager.c Mon Jan 17 19:17:26 2011 (r217508) @@ -318,6 +318,7 @@ dev_pager_getfake(vm_paddr_t paddr, vm_m m = uma_zalloc(fakepg_zone, M_WAITOK | M_ZERO); m->phys_addr = paddr; + m->queue = PQ_NONE; /* Fictitious pages don't use "segind". */ m->flags = PG_FICTITIOUS; /* Fictitious pages don't use "order" or "pool". */ Modified: head/sys/vm/sg_pager.c ============================================================================== --- head/sys/vm/sg_pager.c Mon Jan 17 18:58:28 2011 (r217507) +++ head/sys/vm/sg_pager.c Mon Jan 17 19:17:26 2011 (r217508) @@ -242,6 +242,7 @@ sg_pager_getfake(vm_paddr_t paddr, vm_me m = uma_zalloc(fakepg_zone, M_WAITOK | M_ZERO); m->phys_addr = paddr; + m->queue = PQ_NONE; /* Fictitious pages don't use "segind". */ m->flags = PG_FICTITIOUS; /* Fictitious pages don't use "order" or "pool". */ Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Mon Jan 17 18:58:28 2011 (r217507) +++ head/sys/vm/vm_page.h Mon Jan 17 19:17:26 2011 (r217508) @@ -146,11 +146,11 @@ struct vm_page { #define VPO_SWAPINPROG 0x0200 /* swap I/O in progress on page */ #define VPO_NOSYNC 0x0400 /* do not collect for syncer */ -#define PQ_NONE 0 -#define PQ_INACTIVE 1 -#define PQ_ACTIVE 2 -#define PQ_HOLD 3 -#define PQ_COUNT 4 +#define PQ_NONE 255 +#define PQ_INACTIVE 0 +#define PQ_ACTIVE 1 +#define PQ_HOLD 2 +#define PQ_COUNT 3 struct vpgqueues { struct pglist pl; Modified: head/sys/vm/vm_phys.c ============================================================================== --- head/sys/vm/vm_phys.c Mon Jan 17 18:58:28 2011 (r217507) +++ head/sys/vm/vm_phys.c Mon Jan 17 19:17:26 2011 (r217508) @@ -385,6 +385,7 @@ vm_phys_add_page(vm_paddr_t pa) cnt.v_page_count++; m = vm_phys_paddr_to_vm_page(pa); m->phys_addr = pa; + m->queue = PQ_NONE; m->segind = vm_phys_paddr_to_segind(pa); m->flags = PG_FREE; KASSERT(m->order == VM_NFREEORDER,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101171917.p0HJHQqW010246>