From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 4.19 23/49] drm/etnaviv: lock MMU while dumping core Date: Sat, 8 Jun 2019 07:42:04 -0400 Message-ID: <20190608114232.8731-23-sashal@kernel.org> References: <20190608114232.8731-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11029890E9 for ; Sat, 8 Jun 2019 11:43:32 +0000 (UTC) In-Reply-To: <20190608114232.8731-1-sashal@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin , David Jander , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogTHVjYXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+CgpbIFVwc3RyZWFtIGNv bW1pdCAxMzk2NTAwZDY3M2JkMDI3NjgzYTA2MDlmZjg0ZGNhN2ViNmVhMmU3IF0KClRoZSBkZXZj b3JlZHVtcCBuZWVkcyB0byBvcGVyYXRlIG9uIGEgc3RhYmxlIHN0YXRlIG9mIHRoZSBNTVUgd2hp bGUKaXQgaXMgd3JpdGluZyB0aGUgTU1VIHN0YXRlIHRvIHRoZSBjb3JlZHVtcC4gVGhlIG1pc3Np bmcgbG9jawphbGxvd2VkIGJvdGggdGhlIHVzZXJzcGFjZSBzdWJtaXQsIGFzIHdlbGwgYXMgdGhl IEdQVSBqb2IgZmluaXNoCnBhdGhzIHRvIG11dGF0ZSB0aGUgTU1VIHN0YXRlIHdoaWxlIGEgY29y ZWR1bXAgaXMgdW5kZXIgd2F5LgoKRml4ZXM6IGE4YzIxYTU0NTFkOCAoZHJtL2V0bmF2aXY6IGFk ZCBpbml0aWFsIGV0bmF2aXYgRFJNIGRyaXZlcikKUmVwb3J0ZWQtYnk6IERhdmlkIEphbmRlciA8 ZGF2aWRAcHJvdG9uaWMubmw+ClNpZ25lZC1vZmYtYnk6IEx1Y2FzIFN0YWNoIDxsLnN0YWNoQHBl bmd1dHJvbml4LmRlPgpUZXN0ZWQtYnk6IERhdmlkIEphbmRlciA8ZGF2aWRAcHJvdG9uaWMubmw+ ClJldmlld2VkLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4LmRlPgpTaWdu ZWQtb2ZmLWJ5OiBTYXNoYSBMZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwg NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9kdW1wLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYwppbmRl eCA5MTQ2ZTMwZTI0YTYuLjQ2OGRmZjJmNzkwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9kdW1wLmMKQEAgLTEyNCw2ICsxMjQsOCBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0 cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCQlyZXR1cm47CiAJZXRuYXZpdl9kdW1wX2NvcmUgPSBm YWxzZTsKIAorCW11dGV4X2xvY2soJmdwdS0+bW11LT5sb2NrKTsKKwogCW1tdV9zaXplID0gZXRu YXZpdl9pb21tdV9kdW1wX3NpemUoZ3B1LT5tbXUpOwogCiAJLyogV2UgYWx3YXlzIGR1bXAgcmVn aXN0ZXJzLCBtbXUsIHJpbmcgYW5kIGVuZCBtYXJrZXIgKi8KQEAgLTE2Niw2ICsxNjgsNyBAQCB2 b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCWl0ZXIuc3Rh cnQgPSBfX3ZtYWxsb2MoZmlsZV9zaXplLCBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOIHwgX19H RlBfTk9SRVRSWSwKIAkJCSAgICAgICBQQUdFX0tFUk5FTCk7CiAJaWYgKCFpdGVyLnN0YXJ0KSB7 CisJCW11dGV4X3VubG9jaygmZ3B1LT5tbXUtPmxvY2spOwogCQlkZXZfd2FybihncHUtPmRldiwg ImZhaWxlZCB0byBhbGxvY2F0ZSBkZXZjb3JlZHVtcCBmaWxlXG4iKTsKIAkJcmV0dXJuOwogCX0K QEAgLTIzMyw2ICsyMzYsOCBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBldG5hdml2 X2dwdSAqZ3B1KQogCQkJCQkgb2JqLT5iYXNlLnNpemUpOwogCX0KIAorCW11dGV4X3VubG9jaygm Z3B1LT5tbXUtPmxvY2spOworCiAJZXRuYXZpdl9jb3JlX2R1bXBfaGVhZGVyKCZpdGVyLCBFVERV TVBfQlVGX0VORCwgaXRlci5kYXRhKTsKIAogCWRldl9jb3JlZHVtcHYoZ3B1LT5kZXYsIGl0ZXIu c3RhcnQsIGl0ZXIuZGF0YSAtIGl0ZXIuc3RhcnQsIEdGUF9LRVJORUwpOwotLSAKMi4yMC4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,T_DKIMWL_WL_HIGH,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 57BC8C28CC5 for ; Sat, 8 Jun 2019 11:43:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 23E9A21530 for ; Sat, 8 Jun 2019 11:43:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559994220; bh=U43gp4ER5JVDxFLFOVHwt1cW9WDip0sBv7jyk0GXFHA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=q911etk3EAM0NW1TwRBNDMgUhow7v64UDoCoDIubAlOcFaPM3GyKIU9qnpPhyzBot TqjAbbxVmsZqlgvqE7dfUHSSipu7mp+nNPmwRPr5LDEN5XNHPsJheaOkaKOLEUxyaJ OAKcp4vUD8uRn8tjKrJaJh1UuOc537smH10bIcMs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728100AbfFHLnj (ORCPT ); Sat, 8 Jun 2019 07:43:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:60920 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728784AbfFHLnc (ORCPT ); Sat, 8 Jun 2019 07:43:32 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 36AB8214C6; Sat, 8 Jun 2019 11:43:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559994211; bh=U43gp4ER5JVDxFLFOVHwt1cW9WDip0sBv7jyk0GXFHA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xfbbcTZ+4yW8Nu2DT260Aweck9rGJoK1IA0oWNLZ+S7XZbmJA58NGbjz+DFIKLiAz nj6dxtKxXffGLX6RBNriig+yGrVoW2WYQpbdJKiiSVkoeLJ7aaXx3NRmBbIXm4AmKU afSUdBQpP33Nns2ue4ZT/Z4IHCMf23bxiJ1eEYX8= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Lucas Stach , David Jander , Philipp Zabel , Sasha Levin , dri-devel@lists.freedesktop.org Subject: [PATCH AUTOSEL 4.19 23/49] drm/etnaviv: lock MMU while dumping core Date: Sat, 8 Jun 2019 07:42:04 -0400 Message-Id: <20190608114232.8731-23-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190608114232.8731-1-sashal@kernel.org> References: <20190608114232.8731-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lucas Stach [ Upstream commit 1396500d673bd027683a0609ff84dca7eb6ea2e7 ] The devcoredump needs to operate on a stable state of the MMU while it is writing the MMU state to the coredump. The missing lock allowed both the userspace submit, as well as the GPU job finish paths to mutate the MMU state while a coredump is under way. Fixes: a8c21a5451d8 (drm/etnaviv: add initial etnaviv DRM driver) Reported-by: David Jander Signed-off-by: Lucas Stach Tested-by: David Jander Reviewed-by: Philipp Zabel Signed-off-by: Sasha Levin --- drivers/gpu/drm/etnaviv/etnaviv_dump.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_dump.c b/drivers/gpu/drm/etnaviv/etnaviv_dump.c index 9146e30e24a6..468dff2f7904 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_dump.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_dump.c @@ -124,6 +124,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 */ @@ -166,6 +168,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; } @@ -233,6 +236,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); -- 2.20.1