Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Sep 2008 17:49:54 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/vm vm_object.c
Message-ID:  <200809241750.m8OHo9bP095711@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2008-09-24 17:49:54 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_6)
    sys/vm               vm_object.c 
  Log:
  SVN rev 183327 on 2008-09-24 17:49:54Z by jhb
  
  MFC: 176526,176596
  - Correct a long-standing error in vm_object_deallocate().  Specifically,
    only anonymous default (OBJT_DEFAULT) and swap (OBJT_SWAP) objects should
    ever have OBJ_ONEMAPPING set.  However, vm_object_deallocate() was
    setting it on device (OBJT_DEVICE) objects.  As a result,
    vm_object_page_remove() could be called on a device object and if that
    occurred pmap_remove_all() would be called on the device object's pages.
    However, a device object's pages are fictitious, and fictitious pages do
    not have an initialized pv list (struct md_page).
  - Correct a long-standing error in vm_object_page_remove().  Specifically,
    pmap_remove_all() must not be called on fictitious pages.  To date,
    fictitious pages have been allocated from zeroed memory, effectively
    hiding this problem because the fictitious pages appear to have an empty
    pv list.
  - Rewrite the comments describing vm_object_page_remove() to better
    describe what it does.  Add an assertion.
  
  Approved by:    re (kib), alc
  
  Revision   Changes    Path
  1.349.2.9  +25 -6     src/sys/vm/vm_object.c



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