From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3BC925E83A; Tue, 11 Mar 2025 15:03:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741705394; cv=none; b=lA1uuRC1jWTpZGcm9PCWpZXxuRWNS0/06c7IHTFMIsIf0lJP4dG/JomYfxIBJEWb/4NYKi1qfxyU6C/bWZzsCUEa1XcdRva7N8Hr88Ys5vNVCaxZ/Xc/qnrrnGTZvOQ9WXDolxyhTeRUWVvS0UDQswJYepMzDfPh3Ro4YJ/devg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741705394; c=relaxed/simple; bh=9czoML89kaxRIv3GbZGF++Z5BvbFnj07mMfwlQssRac=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K7XmiD2IbzrWGsory+s9sJc4tqU9HoUpzR5BF7Jy4BQ3gU559pDTFZ0epWiWKod+1pJKCNTrToWUo6L6nNpgeGonKnOHt8qCR15K1ZOVGkaZJ7N8fhuye/dWOERAk31n2p1gCAEz+xGx7YpWO0Vv5Be4YXRDFxIU+Nwe/SQ9YhI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=PcohqrRE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="PcohqrRE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60700C4CEE9; Tue, 11 Mar 2025 15:03:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1741705393; bh=9czoML89kaxRIv3GbZGF++Z5BvbFnj07mMfwlQssRac=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PcohqrREPwsohy5bJllWVaMy8r7L475C2uKLe6g/7QS2LIGY/hdWegS2f0d9QuZ8W ptKfCfOtjkCYhRNHdu6Ff0yocrJaHJVK1Ok/MWYd5NZ9Rrt+l5mkMaSOy94OfZ5Sho Z4FYTBZXLoWmRivb4qTM3+nK5DJeEvyk5LOhcdw8= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Sui Jingfeng , Lucas Stach , Sasha Levin Subject: [PATCH 5.4 009/328] drm/etnaviv: Fix page property being used for non writecombine buffers Date: Tue, 11 Mar 2025 15:56:19 +0100 Message-ID: <20250311145715.247112373@linuxfoundation.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250311145714.865727435@linuxfoundation.org> References: <20250311145714.865727435@linuxfoundation.org> User-Agent: quilt/0.68 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 5.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Sui Jingfeng [ Upstream commit 834f304192834d6f0941954f3277ae0ba11a9a86 ] In the etnaviv_gem_vmap_impl() function, the driver vmap whatever buffers with write combine(WC) page property, this is incorrect. Cached buffers should be mapped with the cached page property and uncached buffers should be mapped with the uncached page property. Fixes: a0a5ab3e99b8 ("drm/etnaviv: call correct function when trying to vmap a DMABUF") Signed-off-by: Sui Jingfeng Signed-off-by: Lucas Stach Signed-off-by: Sasha Levin --- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index 2aabe8433cee2..3d04ac6d821df 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -350,6 +350,7 @@ void *etnaviv_gem_vmap(struct drm_gem_object *obj) static void *etnaviv_gem_vmap_impl(struct etnaviv_gem_object *obj) { struct page **pages; + pgprot_t prot; lockdep_assert_held(&obj->lock); @@ -357,8 +358,19 @@ static void *etnaviv_gem_vmap_impl(struct etnaviv_gem_object *obj) if (IS_ERR(pages)) return NULL; - return vmap(pages, obj->base.size >> PAGE_SHIFT, - VM_MAP, pgprot_writecombine(PAGE_KERNEL)); + switch (obj->flags & ETNA_BO_CACHE_MASK) { + case ETNA_BO_CACHED: + prot = PAGE_KERNEL; + break; + case ETNA_BO_UNCACHED: + prot = pgprot_noncached(PAGE_KERNEL); + break; + case ETNA_BO_WC: + default: + prot = pgprot_writecombine(PAGE_KERNEL); + } + + return vmap(pages, obj->base.size >> PAGE_SHIFT, VM_MAP, prot); } static inline enum dma_data_direction etnaviv_op_to_dma_dir(u32 op) -- 2.39.5