Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp437607imu; Wed, 12 Dec 2018 20:54:16 -0800 (PST) X-Google-Smtp-Source: AFSGD/WibTgby71h5DRhqA2BJ9VdfiidUXySllVqpRSA6ZRg8BDVURaMVUf7LgsraF3daOH61AFK X-Received: by 2002:a62:c302:: with SMTP id v2mr23003886pfg.155.1544676856506; Wed, 12 Dec 2018 20:54:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544676856; cv=none; d=google.com; s=arc-20160816; b=YFhzwBpgzOYhbpFGeZIJyhyVlNUW/FNhs7wB28LeBkVEzqvnltTPrxwea0MYlHIH55 BMSqqra+xviOYZ/Axbo0LbAvrrH4vuIMj0lJoM54rMIqfbw9sQEsITmbZLgXkcWyuET1 0oFQyQ6rOGQbNh18uPQdWILSIjj04NWl2wyFJwjyUFq6djtksQnhHs5JCKmtKQkkEs8s pZk1Sd8Vt9JEc5T73c82X6pV9rr/x+P+LF/gcpPcU0N1VxLt2nQkUfPnlzpV5WcFTQWY 8h1f/kC/58G5qkE5JntcjHpqKF5gqwBUjySdx94YeXaKhE1pPz+RbpGhcKtMa1JKUwNB EKPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3sUOmjYQ7EjXVlBl0ncjWyn0lO9ENZhcLyH6D4JObs0=; b=WUHSQ0tdsFCu+WM6vEO8jBro3RkJjlVkFhevBSygI5km7p7WkVKYKTmkjtaqh2Gj48 2LNiKO8m64OS6iU0K1hbMChYVDDc1yO1kTUAEifed8ZyzMvgymKGINnf1d2r3LunHV0O 8AbRlGwmCJ6V0hED1BUOssOja8qJI6sI7DOJbEit9t/bJpeUITOk9/vtKfhpsYtcowfD FVhUb7UArqPhl7qs0yE4EHTkWe14+ZLuH5/WH3x+cNcoYdZ/YerY9M0ubIdSirFQY30Q bWLyz3dZwruRJjvwtBfAxcGQ8lgrROrq2Es/F1PO0LhEBZbycROLCkG/Cm3Cjh6POKm2 cjog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QfTUsg9I; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w12si672121pgs.182.2018.12.12.20.54.01; Wed, 12 Dec 2018 20:54:16 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QfTUsg9I; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727374AbeLME3I (ORCPT + 99 others); Wed, 12 Dec 2018 23:29:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:41872 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727188AbeLME25 (ORCPT ); Wed, 12 Dec 2018 23:28:57 -0500 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 C042220849; Thu, 13 Dec 2018 04:28:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544675336; bh=N8AfGWv1BymxIbK9rX5NHROOq0ClCwsRM2lj4GdEsZI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QfTUsg9I9YCcUht0QnGb3/DKbiFxMlbE+OwUqvrvv/hsoHbNFm6O92Q7OnbO5JPIr x87tYKlKXWK+ewZ/TV5IAYVtigXTG0w9qtUo77+VDai72An5PcybO/HcmBFz4wqiBs PPG3x0RlfcJLvBRmeZ7wsV0VWOmrt4pS6s4nemcI= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sharat Masetty , Rob Clark , Sean Paul , Sasha Levin , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH AUTOSEL 4.19 12/73] drm/msm: Fix task dump in gpu recovery Date: Wed, 12 Dec 2018 23:27:37 -0500 Message-Id: <20181213042838.75160-12-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181213042838.75160-1-sashal@kernel.org> References: <20181213042838.75160-1-sashal@kernel.org> MIME-Version: 1.0 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: Sharat Masetty [ Upstream commit 482f96324a4e08818db7d75bb12beaaea6c9561d ] The current recovery code gets a pointer to the task struct and does a few things all within the rcu_read_lock. This puts constraints on the types of gfp flags that can be used within the rcu lock. This patch instead gets a reference to the task within the rcu lock and releases the lock immediately, this way the task stays afloat until we need it and we also get to use the desired gfp flags. Signed-off-by: Sharat Masetty Signed-off-by: Rob Clark Signed-off-by: Sean Paul Signed-off-by: Sasha Levin --- drivers/gpu/drm/msm/msm_gpu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index 46e6b82f7b66..52a2146dc1f2 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -425,10 +425,9 @@ static void recover_worker(struct work_struct *work) if (submit) { struct task_struct *task; - rcu_read_lock(); - task = pid_task(submit->pid, PIDTYPE_PID); + task = get_pid_task(submit->pid, PIDTYPE_PID); if (task) { - comm = kstrdup(task->comm, GFP_ATOMIC); + comm = kstrdup(task->comm, GFP_KERNEL); /* * So slightly annoying, in other paths like @@ -441,10 +440,10 @@ static void recover_worker(struct work_struct *work) * about the submit going away. */ mutex_unlock(&dev->struct_mutex); - cmd = kstrdup_quotable_cmdline(task, GFP_ATOMIC); + cmd = kstrdup_quotable_cmdline(task, GFP_KERNEL); + put_task_struct(task); mutex_lock(&dev->struct_mutex); } - rcu_read_unlock(); if (comm && cmd) { dev_err(dev->dev, "%s: offending task: %s (%s)\n", -- 2.19.1