Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4546328pxj; Wed, 12 May 2021 07:57:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw9MFLqPuk2QI7o6PN2E0/mMlP75q4IAhtKNAq+YJL22LkKCbLnvs6h5dig97DVC3WvEdS1 X-Received: by 2002:a05:6402:4313:: with SMTP id m19mr43342232edc.263.1620831429850; Wed, 12 May 2021 07:57:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620831429; cv=none; d=google.com; s=arc-20160816; b=WCKqYwoqlx+kDE0SDoITav9ASmoKZ1iOiV/Wl/OZunAkS3UhC/fsW+ow27LgVBiZFT dMQsIhagihDXwh4KNcX8wyCtIXngT9wJmgiwbHFxVW9aSi9+cC/yhH6UkFS6GdLfZ5ld GgGc330BHLZc6gwKzFkX+0+I67KemC5O56wpx5OXGRpEmgLMoBan6q/PXNFiALLW0VxP tIYBxYXjWdsCcKnGjxQz87gfn4jjI7vhj5lGDnHTOO7zXnQ4qOfqaCWj9VRc5yeESyE3 QAzYs2qvZnkWSgDuMWMsg/1aIXwlHs5j7Zc1/Ivh/t67bRUhY6bWA+SKaq0tuzFYeB2C OI1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=NtP8mKx6pD8/v2LxANj4d10xYxiRDuDmGG/QS4lGA9A=; b=ITkRfcZevW3ljxYbPX+FE8CfCyFEcNmJ2QHhsvJX+I0GOio55DRlA4Hoky/TZpW/tt M4wE6Ce6fqK1Qz6JrFAUQNMo/HAeKKOvihgvku5UU4ir056D9oUmkuYH3QoIorRwP7h/ fYEb+7deUiEm8czsftXmSZrEYooq4/eQK9+6TWsBO5mPdmlH0VAp0c5zynM1p4EmVst6 u0SD/Lbkzh5pl5y4lJtZ8QpMq6nGlzEsYN7FdTVNFb3Nh3ItaXDT7kFaSx2VJPy3f7xw EwHt6I6Z+KYZkmU8illFCXCqSu+VrBby9/vWwh8FaR6K2ayrlcHW8cVmE6fPRnEZf4OK OWWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GL93NcFF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i5si176307eje.413.2021.05.12.07.56.45; Wed, 12 May 2021 07:57:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GL93NcFF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232273AbhELOz5 (ORCPT + 99 others); Wed, 12 May 2021 10:55:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:45390 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231966AbhELOzL (ORCPT ); Wed, 12 May 2021 10:55:11 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7E2B061412; Wed, 12 May 2021 14:54:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620831243; bh=E79p+csodFQPQQRgKsiTYojgms5YKYfKZRs+vcA16Uk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GL93NcFFVgbuo14PGOQJm1F0nvKScB+qpMEOJ+hbNB0W/NKHUWFXKQtAJPv/BwUU3 2x1RmHEww0gWz1l4RO44hohyDykElshqles6ZdOMaIzPQ2744cLcJC777UMsFPYCH0 G2qrFEe5yGgV892Gq7suT2ZkoLGVnHbgnBVRY0DE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Boris Brezillon , Steven Price Subject: [PATCH 5.4 040/244] drm/panfrost: Dont try to map pages that are already mapped Date: Wed, 12 May 2021 16:46:51 +0200 Message-Id: <20210512144744.334442699@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144743.039977287@linuxfoundation.org> References: <20210512144743.039977287@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Boris Brezillon commit f45da8204ff1707c529a8769f5467ff16f504b26 upstream. We allocate 2MB chunks at a time, so it might appear that a page fault has already been handled by a previous page fault when we reach panfrost_mmu_map_fault_addr(). Bail out in that case to avoid mapping the same area twice. Cc: Fixes: 187d2929206e ("drm/panfrost: Add support for GPU heap allocations") Signed-off-by: Boris Brezillon Reviewed-by: Steven Price Link: https://patchwork.freedesktop.org/patch/msgid/20210205111757.585248-3-boris.brezillon@collabora.com Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/panfrost/panfrost_mmu.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/panfrost/panfrost_mmu.c +++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c @@ -494,8 +494,14 @@ static int panfrost_mmu_map_fault_addr(s } bo->base.pages = pages; bo->base.pages_use_count = 1; - } else + } else { pages = bo->base.pages; + if (pages[page_offset]) { + /* Pages are already mapped, bail out. */ + mutex_unlock(&bo->base.pages_lock); + goto out; + } + } mapping = bo->base.base.filp->f_mapping; mapping_set_unevictable(mapping); @@ -529,6 +535,7 @@ static int panfrost_mmu_map_fault_addr(s dev_dbg(pfdev->dev, "mapped page fault @ AS%d %llx", as, addr); +out: panfrost_gem_mapping_put(bomapping); return 0;