From owner-svn-src-all@FreeBSD.ORG Sun Nov 2 11:47:41 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 48A986A1; Sun, 2 Nov 2014 11:47:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 357E4B92; Sun, 2 Nov 2014 11:47:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sA2Blfer063198; Sun, 2 Nov 2014 11:47:41 GMT (envelope-from tijl@FreeBSD.org) Received: (from tijl@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sA2BlfVQ063197; Sun, 2 Nov 2014 11:47:41 GMT (envelope-from tijl@FreeBSD.org) Message-Id: <201411021147.sA2BlfVQ063197@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: tijl set sender to tijl@FreeBSD.org using -f From: Tijl Coosemans Date: Sun, 2 Nov 2014 11:47:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r273965 - head/sys/dev/agp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2014 11:47:41 -0000 Author: tijl Date: Sun Nov 2 11:47:40 2014 New Revision: 273965 URL: https://svnweb.freebsd.org/changeset/base/273965 Log: - agp_generic_unbind_memory: flush AGP TLB before unwiring pages - agp_bind_pages: assert that pages have been wired down MFC after: 1 month Modified: head/sys/dev/agp/agp.c Modified: head/sys/dev/agp/agp.c ============================================================================== --- head/sys/dev/agp/agp.c Sun Nov 2 11:28:15 2014 (r273964) +++ head/sys/dev/agp/agp.c Sun Nov 2 11:47:40 2014 (r273965) @@ -645,6 +645,9 @@ agp_generic_unbind_memory(device_t dev, */ for (i = 0; i < mem->am_size; i += AGP_PAGE_SIZE) AGP_UNBIND_PAGE(dev, mem->am_offset + i); + + AGP_FLUSH_TLB(dev); + VM_OBJECT_WLOCK(mem->am_obj); for (i = 0; i < mem->am_size; i += PAGE_SIZE) { m = vm_page_lookup(mem->am_obj, atop(i)); @@ -653,8 +656,6 @@ agp_generic_unbind_memory(device_t dev, vm_page_unlock(m); } VM_OBJECT_WUNLOCK(mem->am_obj); - - AGP_FLUSH_TLB(dev); mem->am_offset = 0; mem->am_is_bound = 0; @@ -1000,6 +1001,8 @@ agp_bind_pages(device_t dev, vm_page_t * mtx_lock(&sc->as_lock); for (i = 0; i < size; i += PAGE_SIZE) { m = pages[OFF_TO_IDX(i)]; + KASSERT(m->wire_count > 0, + ("agp_bind_pages: page %p hasn't been wired", m)); /* * Install entries in the GATT, making sure that if