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) {