Received: by 10.192.165.156 with SMTP id m28csp1080130imm; Wed, 11 Apr 2018 12:02:54 -0700 (PDT) X-Google-Smtp-Source: AIpwx48jySHh0qqetwg0rJMT9+tjYjU2u1ODyvO5Rc7i4dg3HDDqnudIWHgYnpwj/TZ92009Zghj X-Received: by 2002:a17:902:5381:: with SMTP id c1-v6mr6275616pli.234.1523473374431; Wed, 11 Apr 2018 12:02:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523473374; cv=none; d=google.com; s=arc-20160816; b=d1JFq7Pqa8/PZXQElKXPDEidLwvpiagL/mnV2GRtXM+WY0K2IBFEqVzkOOpDBAc7Oz ZRztJh0kcln28iAZlDPpH76eddTBb6CqaHjZ71be1aoG64PoV4yTiwhL1TABws0YNsqp fJOSY3ABUpf6VZ3jMa13sNBPyk+UvlruoI0Ovy3c7zg5bUqQNtfhuTpeJ8SxG7CIN3U+ 7NgOYtoG7K9RIkMxQKTIhqsNeS3QXv49ZyRtTkD98HSH+dVJteMgp+Uvld1h2dv4J3UM qPOqHRpeZLV2RyCzicRQfOH+LKwifjDEpqUb6iOim9a68hU+ZKJ9tuGG5DXIwGi676DM pZKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=WnjSSUyh3HmBJlBVxJFq95aW/j6RO9fSgXqYSwla2JQ=; b=LJlI5+vYgupazjI6vqtUkpAB06+fP9Ua0tEdeYRQXFob+uqjaozKY3eG6k0DCT1D7t RyxogIHhNEcJLG24lRhJ2lGx5dXUsyQUt+sMCok8pmXekf7LZFJczVmPjWu9tjGT+6jT o1lFSoAkyXNzP9d0QDWVYP+5qcnnuxPaF8i7g0P4nnUR+rk6bMhQTTlTuR7OQ0ojJ35O NqpbQXu/WS1hL2XemSoZmn35iixuQh7l6iQbhGFMtDguALgzSwdMm1rD9H25mUMn5OQW W3sxUDTRwHROhj0koKpL1C6WEHFh+6NzwihkCybtlEUOAMcaNg5X+gu/Ee99EwOJAWaY wtDQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f2si1170156pgr.67.2018.04.11.12.02.17; Wed, 11 Apr 2018 12:02:54 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756510AbeDKS5x (ORCPT + 99 others); Wed, 11 Apr 2018 14:57:53 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:36430 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756465AbeDKS5q (ORCPT ); Wed, 11 Apr 2018 14:57:46 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id DA31DD9E; Wed, 11 Apr 2018 18:57:45 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jordan Crouse , Rob Clark , Sasha Levin Subject: [PATCH 4.9 118/310] drm/msm: Take the mutex before calling msm_gem_new_impl Date: Wed, 11 Apr 2018 20:34:17 +0200 Message-Id: <20180411183627.242365299@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183622.305902791@linuxfoundation.org> References: <20180411183622.305902791@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Jordan Crouse [ Upstream commit 90dd57de4a043f642179b1323a31ca3ced826611 ] Amongst its other duties, msm_gem_new_impl adds the newly created GEM object to the shared inactive list which may also be actively modifiying the list during submission. All the paths to modify the list are protected by the mutex except for the one through msm_gem_import which can end up causing list corruption. Signed-off-by: Jordan Crouse [add extra WARN_ON(!mutex_is_locked(&dev->struct_mutex))] Signed-off-by: Rob Clark Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/msm/msm_gem.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -770,6 +770,8 @@ static int msm_gem_new_impl(struct drm_d unsigned sz; bool use_vram = false; + WARN_ON(!mutex_is_locked(&dev->struct_mutex)); + switch (flags & MSM_BO_CACHE_MASK) { case MSM_BO_UNCACHED: case MSM_BO_CACHED: @@ -863,7 +865,11 @@ struct drm_gem_object *msm_gem_import(st size = PAGE_ALIGN(dmabuf->size); + /* Take mutex so we can modify the inactive list in msm_gem_new_impl */ + mutex_lock(&dev->struct_mutex); ret = msm_gem_new_impl(dev, size, MSM_BO_WC, dmabuf->resv, &obj); + mutex_unlock(&dev->struct_mutex); + if (ret) goto fail;