Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Aug 2013 15:05:22 +0000 (UTC)
From:      Jean-Sebastien Pedron <dumbbell@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254873 - head/sys/dev/drm2/ttm
Message-ID:  <201308251505.r7PF5MSN055573@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dumbbell
Date: Sun Aug 25 15:05:22 2013
New Revision: 254873
URL: http://svnweb.freebsd.org/changeset/base/254873

Log:
  drm/ttm: When removing a range of pages from a pool, remove all of them
  
  Submitted by:	Mark Kettenis and Jonathan Gray from OpenBSD
  Approved by:	kib@

Modified:
  head/sys/dev/drm2/ttm/ttm_page_alloc.c

Modified: head/sys/dev/drm2/ttm/ttm_page_alloc.c
==============================================================================
--- head/sys/dev/drm2/ttm/ttm_page_alloc.c	Sun Aug 25 15:01:43 2013	(r254872)
+++ head/sys/dev/drm2/ttm/ttm_page_alloc.c	Sun Aug 25 15:05:22 2013	(r254873)
@@ -320,6 +320,7 @@ static int ttm_page_pool_free(struct ttm
 	vm_page_t *pages_to_free;
 	unsigned freed_pages = 0,
 		 npages_to_free = nr_free;
+	unsigned i;
 
 	if (NUM_PAGES_TO_ALLOC < nr_free)
 		npages_to_free = NUM_PAGES_TO_ALLOC;
@@ -338,7 +339,8 @@ restart:
 		/* We can only remove NUM_PAGES_TO_ALLOC at a time. */
 		if (freed_pages >= NUM_PAGES_TO_ALLOC) {
 			/* remove range of pages from the pool */
-			TAILQ_REMOVE(&pool->list, p, plinks.q);
+			for (i = 0; i < freed_pages; i++)
+				TAILQ_REMOVE(&pool->list, pages_to_free[i], plinks.q);
 
 			ttm_pool_update_free_locked(pool, freed_pages);
 			/**
@@ -373,7 +375,8 @@ restart:
 
 	/* remove range of pages from the pool */
 	if (freed_pages) {
-		TAILQ_REMOVE(&pool->list, p, plinks.q);
+		for (i = 0; i < freed_pages; i++)
+			TAILQ_REMOVE(&pool->list, pages_to_free[i], plinks.q);
 
 		ttm_pool_update_free_locked(pool, freed_pages);
 		nr_free -= freed_pages;



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