From patchwork Mon Dec 10 12:04:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sharat Masetty X-Patchwork-Id: 10721171 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6CA9313BF for ; Mon, 10 Dec 2018 12:04:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5D4CA2847F for ; Mon, 10 Dec 2018 12:04:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 517BC285CD; Mon, 10 Dec 2018 12:04:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7273C2847F for ; Mon, 10 Dec 2018 12:04:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727387AbeLJMEf (ORCPT ); Mon, 10 Dec 2018 07:04:35 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:38772 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727058AbeLJMEf (ORCPT ); Mon, 10 Dec 2018 07:04:35 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id CF49D60B0D; Mon, 10 Dec 2018 12:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1544443474; bh=x4zVPUZfv9nz5pFTiKYSOVYuV6xs+9a6S/eQHG5cplU=; h=From:To:Cc:Subject:Date:From; b=geaQdrhNAPJWlyQNoOLn5SEcAB+pft6oDqNZlHawv8UUJOaISfSc23DVWYCZSXrD5 BKbeE2lcct9Tu6VpU+Oixd7A5oTBOcyhdts7EiY/jSS8tNwwM+pR3p2miaX/P3a05F mxWlMVs1ntmIpZsR6vfia12m2LqV5WakatRRKrjQ= Received: from smasetty-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: smasetty@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 42FD2604BE; Mon, 10 Dec 2018 12:04:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1544443474; bh=x4zVPUZfv9nz5pFTiKYSOVYuV6xs+9a6S/eQHG5cplU=; h=From:To:Cc:Subject:Date:From; b=geaQdrhNAPJWlyQNoOLn5SEcAB+pft6oDqNZlHawv8UUJOaISfSc23DVWYCZSXrD5 BKbeE2lcct9Tu6VpU+Oixd7A5oTBOcyhdts7EiY/jSS8tNwwM+pR3p2miaX/P3a05F mxWlMVs1ntmIpZsR6vfia12m2LqV5WakatRRKrjQ= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 42FD2604BE Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=smasetty@codeaurora.org From: Sharat Masetty To: freedreno@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, jcrouse@codeaurora.org, Sharat Masetty Subject: [PATCH 1/2] drm/msm/adreno: Make adreno_gpu_state_get() return void Date: Mon, 10 Dec 2018 17:34:21 +0530 Message-Id: <1544443462-28736-1-git-send-email-smasetty@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP We are not really checking the state of the adreno_gpu_state_get() function at the callers and in addition the state capture is mostly a best effort service, so make the function return void. Signed-off-by: Sharat Masetty Reviewed-by: Jordan Crouse --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 4 +--- drivers/gpu/drm/msm/adreno/adreno_gpu.h | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index 1ca4bea..40bcf32 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -380,7 +380,7 @@ bool adreno_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring) return false; } -int adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state) +void adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state) { struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); int i, count = 0; @@ -437,8 +437,6 @@ int adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state) state->nr_registers = count; } - - return 0; } void adreno_gpu_state_destroy(struct msm_gpu_state *state) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h index 4973c8c..d4834b3 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -235,7 +235,7 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev, void adreno_gpu_state_destroy(struct msm_gpu_state *state); -int adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state); +void adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state); int adreno_gpu_state_put(struct msm_gpu_state *state); /* ringbuffer helpers (the parts that are adreno specific) */ From patchwork Mon Dec 10 12:04:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sharat Masetty X-Patchwork-Id: 10721175 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2A3CD3E9D for ; Mon, 10 Dec 2018 12:04:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16C602847F for ; Mon, 10 Dec 2018 12:04:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0A4C62879C; Mon, 10 Dec 2018 12:04:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A748C2847F for ; Mon, 10 Dec 2018 12:04:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727444AbeLJMEi (ORCPT ); Mon, 10 Dec 2018 07:04:38 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:38856 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727058AbeLJMEi (ORCPT ); Mon, 10 Dec 2018 07:04:38 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 83C9F606DB; Mon, 10 Dec 2018 12:04:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1544443477; bh=J/Urq4SDvlePsq36OwCMP3IGoyblEUblXkQl/BhVtos=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FeHvPc2ZH3MPWAIJhOhBrGWa8kdNdCYXPq9oczTTXOKbTkR1vgfhadvVIKl6CekDz FP2ZQl5cpvpClwPUFJu4kH/+CBIaI1yjvdjjGp5JV0fGu7bF3o5IYNag9KClvGlRUS xarz136ZOgbxppgrgKPy7RCjWsAOOQK+/xdo5nhU= Received: from smasetty-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: smasetty@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id B80876081A; Mon, 10 Dec 2018 12:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1544443476; bh=J/Urq4SDvlePsq36OwCMP3IGoyblEUblXkQl/BhVtos=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O1TwD23D2Yped92bv6bAL9GWx1Zyj3amLp5AD0BCdDEol+QPhwLSIMCNDo2uflR8e VYLQ7jBbeGd3YCW/1oQhjWJqbc/47yA0WBVS6gNITe17ZxiRKiw1zC/Hs/Rkjlkq3e 2CumClLzoBnifAUGEtwk4ze1CEG1T7UxJ2U/JCvc= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B80876081A Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=smasetty@codeaurora.org From: Sharat Masetty To: freedreno@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, jcrouse@codeaurora.org, Sharat Masetty Subject: [PATCH 2/2] drm/msm/a6xx: Fix NULL dereference during crashstate capture Date: Mon, 10 Dec 2018 17:34:22 +0530 Message-Id: <1544443462-28736-2-git-send-email-smasetty@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1544443462-28736-1-git-send-email-smasetty@codeaurora.org> References: <1544443462-28736-1-git-send-email-smasetty@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The gpu crashstate's base objects registers pointer can be NULL if the target implementation decides to capture the register dump on its own. This patch simply checks for NULL before dereferencing. Signed-off-by: Sharat Masetty --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index 40bcf32..a39cebc 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -415,6 +415,9 @@ void adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state) } } + if (!adreno_gpu->registers) + return; + /* Count the number of registers */ for (i = 0; adreno_gpu->registers[i] != ~0; i += 2) count += adreno_gpu->registers[i + 1] - @@ -550,12 +553,14 @@ void adreno_show(struct msm_gpu *gpu, struct msm_gpu_state *state, } } - drm_puts(p, "registers:\n"); + if (state->nr_registers > 0) { + drm_puts(p, "registers:\n"); - for (i = 0; i < state->nr_registers; i++) { - drm_printf(p, " - { offset: 0x%04x, value: 0x%08x }\n", - state->registers[i * 2] << 2, - state->registers[(i * 2) + 1]); + for (i = 0; i < state->nr_registers; i++) { + drm_printf(p, " - { offset: 0x%04x, value: 0x%08x }\n", + state->registers[i * 2] << 2, + state->registers[(i * 2) + 1]); + } } } #endif