Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b077dc23 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes



etnaviv core dump locking fix

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Lucas Stach <l.stach@pengutronix.de>
Link: https://patchwork.freedesktop.org/patch/msgid/1558966666.4039.4.camel@pengutronix.de
parents cd6c84d8 1396500d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -125,6 +125,8 @@ void etnaviv_core_dump(struct etnaviv_gpu *gpu)
		return;
	etnaviv_dump_core = false;

	mutex_lock(&gpu->mmu->lock);

	mmu_size = etnaviv_iommu_dump_size(gpu->mmu);

	/* We always dump registers, mmu, ring and end marker */
@@ -167,6 +169,7 @@ void etnaviv_core_dump(struct etnaviv_gpu *gpu)
	iter.start = __vmalloc(file_size, GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY,
			       PAGE_KERNEL);
	if (!iter.start) {
		mutex_unlock(&gpu->mmu->lock);
		dev_warn(gpu->dev, "failed to allocate devcoredump file\n");
		return;
	}
@@ -234,6 +237,8 @@ void etnaviv_core_dump(struct etnaviv_gpu *gpu)
					 obj->base.size);
	}

	mutex_unlock(&gpu->mmu->lock);

	etnaviv_core_dump_header(&iter, ETDUMP_BUF_END, iter.data);

	dev_coredumpv(gpu->dev, iter.start, iter.data - iter.start, GFP_KERNEL);