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=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 090A3C433E3 for ; Thu, 20 Aug 2020 10:09:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D15472075E for ; Thu, 20 Aug 2020 10:09:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597918170; bh=h4djccU8SRHv5HAmTc/Lbs8dPuas84jJHHnm4Ggawq4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=q8cHAtVj0c+vIfLxn8T/5QwFbqkpP1SJ3jADULJzFu7v4vSzBj/90GopwFqTWTm2k 9VVIqtpctanm5hEtKH5mUa1vxRMocTy33ELcxcbO600jQbZc5ZVuL9W2QJ4E+dwoZg 8yyN7I9nHQxwYuddb8yVRUH5AQiUlYcy8lTUKGm8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730803AbgHTKJ3 (ORCPT ); Thu, 20 Aug 2020 06:09:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:43434 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730630AbgHTKJX (ORCPT ); Thu, 20 Aug 2020 06:09:23 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1569D2067C; Thu, 20 Aug 2020 10:09:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597918162; bh=h4djccU8SRHv5HAmTc/Lbs8dPuas84jJHHnm4Ggawq4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nmbA7qGNTEMpaOqWxxf4JvLMerYSYv9OrUQwfionc/xQBB+EV6iYP3zqPMH+uYdus VwFBb4G8Nz7I8HiW+rtY0Kg8jrV3RrMs8r4FgCplP3+cfdNsVTRzmVbLmLrbnRS7E9 Sif666KgboKMgt+W/iPDU+2SB9d5Zer/neGPaYNI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dmitry Osipenko , Thierry Reding , Sasha Levin Subject: [PATCH 4.14 074/228] gpu: host1x: debug: Fix multiple channels emitting messages simultaneously Date: Thu, 20 Aug 2020 11:20:49 +0200 Message-Id: <20200820091611.300401743@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200820091607.532711107@linuxfoundation.org> References: <20200820091607.532711107@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Dmitry Osipenko [ Upstream commit 35681862808472a0a4b9a8817ae2789c0b5b3edc ] Once channel's job is hung, it dumps the channel's state into KMSG before tearing down the offending job. If multiple channels hang at once, then they dump messages simultaneously, making the debug info unreadable, and thus, useless. This patch adds mutex which allows only one channel to emit debug messages at a time. Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding Signed-off-by: Sasha Levin --- drivers/gpu/host1x/debug.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/host1x/debug.c b/drivers/gpu/host1x/debug.c index 2aae0e63214c2..0b8c23c399c2a 100644 --- a/drivers/gpu/host1x/debug.c +++ b/drivers/gpu/host1x/debug.c @@ -25,6 +25,8 @@ #include "debug.h" #include "channel.h" +static DEFINE_MUTEX(debug_lock); + unsigned int host1x_debug_trace_cmdbuf; static pid_t host1x_debug_force_timeout_pid; @@ -49,12 +51,14 @@ static int show_channel(struct host1x_channel *ch, void *data, bool show_fifo) struct output *o = data; mutex_lock(&ch->cdma.lock); + mutex_lock(&debug_lock); if (show_fifo) host1x_hw_show_channel_fifo(m, ch, o); host1x_hw_show_channel_cdma(m, ch, o); + mutex_unlock(&debug_lock); mutex_unlock(&ch->cdma.lock); return 0; -- 2.25.1