Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 12:10:21 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915/gem: i915_gem_phys.c

Log Message:
i915: Fix error branches in i915_gem_object_get_pages_phys.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_phys.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_phys.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_phys.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_phys.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_phys.c:1.5	Sun Dec 19 11:33:49 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_phys.c	Sun Dec 19 12:10:20 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_phys.c,v 1.5 2021/12/19 11:33:49 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_phys.c,v 1.6 2021/12/19 12:10:20 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_phys.c,v 1.5 2021/12/19 11:33:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_phys.c,v 1.6 2021/12/19 12:10:20 riastradh Exp $");
 
 #include <linux/highmem.h>
 #include <linux/shmem_fs.h>
@@ -92,12 +92,12 @@ static int i915_gem_object_get_pages_phy
 	    roundup_pow_of_two(obj->base.size), 0, BUS_DMA_WAITOK,
 	    &sg->sg_dmamap);
 	if (ret)
-		goto err_st;
+		goto err_st1;
 	/* XXX errno NetBSD->Linux */
 	ret = -bus_dmamap_load_raw(dmat, sg->sg_dmamap, &obj->mm.u.phys.seg, 1,
 	    roundup_pow_of_two(obj->base.size), BUS_DMA_WAITOK);
 	if (ret)
-		goto err_st;
+		goto err_st1;
 	loaded = true;
 #else
 	sg->offset = 0;
@@ -136,17 +136,18 @@ static int i915_gem_object_get_pages_phy
 
 	return 0;
 
-err_st:
 #ifdef __NetBSD__
+err_st1:
 	if (loaded)
 		bus_dmamap_unload(dmat, st->sgl->sg_dmamap);
 	if (st->sgl->sg_dmamap) {
 		bus_dmamap_destroy(dmat, st->sgl->sg_dmamap);
 		st->sgl->sg_dmamap = NULL;
 	}
+	sg_free_table(st);
 #endif
+err_st:
 	kfree(st);
-	sg_free_table(st);
 err_pci:
 #ifdef __NetBSD__
 	if (vaddr) {

Reply via email to