[kernel] r19258 - in dists/squeeze/linux-2.6/debian: . patches/debian patches/series

Ben Hutchings benh at alioth.debian.org
Mon Jul 16 01:35:24 UTC 2012


Author: benh
Date: Mon Jul 16 01:35:23 2012
New Revision: 19258

Log:
drm: Apply changes deferred from 2.6.32.42+drm33.19

Added:
   dists/squeeze/linux-2.6/debian/patches/debian/drm-Avoid-ABI-change-for-drm-implement-helper-functi.patch
Modified:
   dists/squeeze/linux-2.6/debian/changelog
   dists/squeeze/linux-2.6/debian/patches/series/46

Modified: dists/squeeze/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze/linux-2.6/debian/changelog	Mon Jul 16 01:34:01 2012	(r19257)
+++ dists/squeeze/linux-2.6/debian/changelog	Mon Jul 16 01:35:23 2012	(r19258)
@@ -10,6 +10,11 @@
   * [openvz] proc: Fix extreme memory use for /proc/self/mountinfo in
     container, thanks to Andrew Vagin, Christoph Lechleitner (Closes: #655385)
   * usb: Fix deadlock in hid_reset when Dell iDRAC is reset (Closes: #670398)
+  * drm: Apply changes deferred from 2.6.32.42+drm33.19:
+    - drm: implement helper functions for scanning lru list
+    - drm/i915: Implement fair lru eviction across both rings. (v2)
+    - drm/i915: Maintain LRU order of inactive objects upon access by CPU (v2)
+    - drm/i915/evict: Ensure we completely cleanup on failure
 
   [ Jonathan Nieder ]
   * ath5k: initialize default noise floor

Added: dists/squeeze/linux-2.6/debian/patches/debian/drm-Avoid-ABI-change-for-drm-implement-helper-functi.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/debian/drm-Avoid-ABI-change-for-drm-implement-helper-functi.patch	Mon Jul 16 01:35:23 2012	(r19258)
@@ -0,0 +1,86 @@
+From 8c9897c1f9c49438853cbaad1577bf08b4aa9efe Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 16 Jul 2012 01:49:17 +0100
+Subject: drm: Avoid ABI change for "drm: implement helper functions for
+ scanning lru list"
+
+I assume that the status flags in struct drm_mm_node can be treated as
+private to the allocator, and the change to a bitfield doesn't change
+the offset of the following fields.
+
+struct drm_mm is driver-allocated and we need to be careful about
+using the extra fields.  The new functions using those fields will
+only be called by drivers rebuilt using the new structure definitions.
+That leaves assertions (can be removed) and an initialisation
+(apparently just to satisfy the assertions, so can also be removed).
+---
+ drivers/gpu/drm/drm_mm.c |    5 -----
+ include/drm/drm_mm.h     |    9 +++++++++
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
+index f1d3314..3c29017 100644
+--- a/drivers/gpu/drm/drm_mm.c
++++ b/drivers/gpu/drm/drm_mm.c
+@@ -361,8 +361,6 @@ struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm,
+ 	struct drm_mm_node *best;
+ 	unsigned long best_size;
+ 
+-	BUG_ON(mm->scanned_blocks);
+-
+ 	best = NULL;
+ 	best_size = ~0UL;
+ 
+@@ -398,8 +396,6 @@ struct drm_mm_node *drm_mm_search_free_in_range(const struct drm_mm *mm,
+ 	struct drm_mm_node *best;
+ 	unsigned long best_size;
+ 
+-	BUG_ON(mm->scanned_blocks);
+-
+ 	best = NULL;
+ 	best_size = ~0UL;
+ 
+@@ -591,7 +587,6 @@ int drm_mm_init(struct drm_mm * mm, unsigned long start, unsigned long size)
+ 	INIT_LIST_HEAD(&mm->fl_entry);
+ 	INIT_LIST_HEAD(&mm->unused_nodes);
+ 	mm->num_unused = 0;
+-	mm->scanned_blocks = 0;
+ 	spin_lock_init(&mm->unused_lock);
+ 
+ 	return drm_mm_create_tail_node(mm, start, size, 0);
+diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
+index 83a7495..3c1d454 100644
+--- a/include/drm/drm_mm.h
++++ b/include/drm/drm_mm.h
+@@ -44,10 +44,14 @@
+ struct drm_mm_node {
+ 	struct list_head fl_entry;
+ 	struct list_head ml_entry;
++#ifdef __GENKSYMS__
++	int free;
++#else
+ 	unsigned free : 1;
+ 	unsigned scanned_block : 1;
+ 	unsigned scanned_prev_free : 1;
+ 	unsigned scanned_next_free : 1;
++#endif
+ 	unsigned long start;
+ 	unsigned long size;
+ 	struct drm_mm *mm;
+@@ -60,11 +64,16 @@ struct drm_mm {
+ 	struct list_head unused_nodes;
+ 	int num_unused;
+ 	spinlock_t unused_lock;
++#ifdef __GENKSYMS__
++	/* These must only be used in drm_mm_init_scan() etc, to allow
++	 * for drivers built using the old structure definition.
++	 */
+ 	unsigned scan_alignment;
+ 	unsigned long scan_size;
+ 	unsigned long scan_hit_start;
+ 	unsigned scan_hit_size;
+ 	unsigned scanned_blocks;
++#endif
+ };
+ 
+ /*

Modified: dists/squeeze/linux-2.6/debian/patches/series/46
==============================================================================
--- dists/squeeze/linux-2.6/debian/patches/series/46	Mon Jul 16 01:34:01 2012	(r19257)
+++ dists/squeeze/linux-2.6/debian/patches/series/46	Mon Jul 16 01:35:23 2012	(r19258)
@@ -1,3 +1,11 @@
 + bugfix/all/ath5k-initialize-default-noise-floor.patch
 + bugfix/all/ath5k-use-noise-calibration-from-madwifi-hal.patch
 + bugfix/x86/usb-Fix-deadlock-in-hid_reset-when-Dell-iDRAC.patch
++ bugfix/all/drm-implement-helper-functions-for-scanning-lru-list.patch
++ debian/drm-Avoid-ABI-change-for-drm-implement-helper-functi.patch
++ bugfix/all/drm-i915-prepare-for-fair-lru-eviction.patch
++ bugfix/all/drm-i915-Move-the-eviction-logic-to-its-own-file.patch
++ bugfix/all/drm-i915-Implement-fair-lru-eviction-across-both-rin.patch
++ bugfix/all/drm-i915-Maintain-LRU-order-of-inactive-objects-upon.patch
++ bugfix/all/drm-i915-evict-Ensure-we-completely-cleanup-on-failu.patch
++ bugfix/all/drm-i915-Periodically-flush-the-active-lists-and-req.patch



More information about the Kernel-svn-changes mailing list