xf86-video-intel: src/sna/kgem.c src/sna/sna_render.c

Chris Wilson ickle at kemper.freedesktop.org
Mon May 25 00:15:53 PDT 2015


 src/sna/kgem.c       |   23 +++++++++++++++++++++++
 src/sna/sna_render.c |   14 --------------
 2 files changed, 23 insertions(+), 14 deletions(-)

New commits:
commit 8b7bdff750a98fc7644fc9ab17bedc79b03198b4
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon May 25 08:02:46 2015 +0100

    sna: Initialise no-op callbacks early
    
    In case of error, we try to free up memory before trying again. This
    involves callbacks into higher level code - but if we fail early, we
    will not have those hooks installed. Set no-ops stubs early to prevent
    untimely crashes.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=90622#c1
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index f6b72d9..463f65f 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1692,6 +1692,25 @@ static struct kgem_bo *kgem_new_batch(struct kgem *kgem)
 	return last;
 }
 
+static void
+no_retire(struct kgem *kgem)
+{
+	(void)kgem;
+}
+
+static void
+no_expire(struct kgem *kgem)
+{
+	(void)kgem;
+}
+
+static void
+no_context_switch(struct kgem *kgem, int new_mode)
+{
+	(void)kgem;
+	(void)new_mode;
+}
+
 void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
 {
 	struct drm_i915_gem_get_aperture aperture;
@@ -1704,6 +1723,10 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
 	kgem->fd = fd;
 	kgem->gen = gen;
 
+	kgem->retire = no_retire;
+	kgem->expire = no_expire;
+	kgem->context_switch = no_context_switch;
+
 	list_init(&kgem->requests[0]);
 	list_init(&kgem->requests[1]);
 	list_init(&kgem->batch_buffers);
diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index d95536e..a994505 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -272,18 +272,6 @@ no_render_context_switch(struct kgem *kgem,
 }
 
 static void
-no_render_retire(struct kgem *kgem)
-{
-	(void)kgem;
-}
-
-static void
-no_render_expire(struct kgem *kgem)
-{
-	(void)kgem;
-}
-
-static void
 no_render_fini(struct sna *sna)
 {
 	(void)sna;
@@ -316,8 +304,6 @@ const char *no_render_init(struct sna *sna)
 	render->fini = no_render_fini;
 
 	sna->kgem.context_switch = no_render_context_switch;
-	sna->kgem.retire = no_render_retire;
-	sna->kgem.expire = no_render_expire;
 	if (sna->kgem.has_blt)
 		sna->kgem.ring = KGEM_BLT;
 


More information about the xorg-commit mailing list