Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3693804pxb; Mon, 24 Jan 2022 15:33:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJzOMM0WcF17oKfinf0rCdIF4UVoVassPlkJrvZTIMizKRHGUTx4vjJLG+OI7z81Nx6+oZ5U X-Received: by 2002:a17:902:b48c:b0:14a:d42b:85bb with SMTP id y12-20020a170902b48c00b0014ad42b85bbmr16580211plr.171.1643067208245; Mon, 24 Jan 2022 15:33:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643067208; cv=none; d=google.com; s=arc-20160816; b=cuAHslgnlXlqPEVjiwKcN1vZQAz2ZSm19BL3SdOZrgzGUVVSfT56VMQ7pwl/eg6ExE k4bzX8V6OFDvZYzS16qWdxWGWc7ymien+uaSSxYDHD8FOWlA987WlTUN5HjqanLI4JLx mXeybjuHoGXfS/MJ9Wan1tSNNDv03zbih7WZcp0ML+WgRU3sUJ4mnJpOqkbf5t1x6E97 l2aK9OoZ3WXLqnumiMrWwEeCEpP+8YXp2w6jwnUyMpRJ+JcrjvIL7mwl/TTn47QtvITY cJ4FOjkGK8feTnHK7CY+3KK//0QSB3S42Z0YkU6QlKMgUV2mRZsHQzoHCF3llgk6bxjA 66Jw== 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=vqKsMdI0WuEd6wRuSygVCOE2PWxMoEihSx68DolWemA=; b=lNec2enKd2WvSRqrCyUbzw0YiRLThjMICy4rgxeQZKOkGlg0jJVu5sIoaq/mI9AhrY nWicCZFW+QvIKbpFU9uk0HJGhGPj0/cFYnJ02F7lwaQ2iw1o3hu3MWpddWlXGA2a2aW9 V43FPtdlk8KzbI8hAEbjFVcw3jF26yTJNLLr0PdSO5CwPy2lAWzFvIvGZptJ12krtL1f wUn6nByf3aED8087gPIW+mzWakyII3JgCUOpY7gCkFvaJSPIYRUudqOoeK34MRlca3q7 cYTpfyrqEGFGjotpSqd3neZYQvFS3y3v58daEOmLkaTO7U70Vw7wYp3feuzA8p23E9op LH4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wwqv7bgQ; 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 f34si580299pjd.146.2022.01.24.15.33.16; Mon, 24 Jan 2022 15:33:28 -0800 (PST) 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=wwqv7bgQ; 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 S1850123AbiAXX13 (ORCPT + 99 others); Mon, 24 Jan 2022 18:27:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1588114AbiAXWbl (ORCPT ); Mon, 24 Jan 2022 17:31:41 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 802BDC047CD5; Mon, 24 Jan 2022 12:56:00 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 471E0B811FB; Mon, 24 Jan 2022 20:55:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B56EC340E5; Mon, 24 Jan 2022 20:55:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643057758; bh=JtuOwGjrs+4E0N1ONfB/JKaOLTOJtjSWdNVu1Zx8gZU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wwqv7bgQQXywz3tLgwsHYf5C6JZBWPVnHsmZGEEC3wlsGI8IZKZijUFd/9hstYG3C W7vbhMbtdXqL5NoIQE8LK8ynnkZcUnhhRQj6XSDE7SoXLWr312zuB+lq9y4z6aJZeH rPcTThsE3F/NHNKPE1k59ZJM1YE75TNACaFYA850= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dmitry Osipenko , Thierry Reding Subject: [PATCH 5.16 0069/1039] gpu: host1x: Add back arm_iommu_detach_device() Date: Mon, 24 Jan 2022 19:30:58 +0100 Message-Id: <20220124184127.487355503@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184125.121143506@linuxfoundation.org> References: <20220124184125.121143506@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: Dmitry Osipenko commit d5185965c3b59073c4520bad7dd2adf725b9abba upstream. Host1x DMA buffer isn't mapped properly when CONFIG_ARM_DMA_USE_IOMMU=y. The memory management code of Host1x driver has a longstanding overhaul overdue and it's not obvious where the problem is in this case. Hence let's add back the old workaround which we already had sometime before. It explicitly detaches Host1x device from the offending implicit IOMMU domain. This fixes a completely broken Host1x DMA in case of ARM32 multiplatform kernel config. Cc: stable@vger.kernel.org Fixes: af1cbfb9bf0f ("gpu: host1x: Support DMA mapping of buffers") Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/host1x/dev.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) --- a/drivers/gpu/host1x/dev.c +++ b/drivers/gpu/host1x/dev.c @@ -18,6 +18,10 @@ #include #undef CREATE_TRACE_POINTS +#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU) +#include +#endif + #include "bus.h" #include "channel.h" #include "debug.h" @@ -238,6 +242,17 @@ static struct iommu_domain *host1x_iommu struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev); int err; +#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU) + if (host->dev->archdata.mapping) { + struct dma_iommu_mapping *mapping = + to_dma_iommu_mapping(host->dev); + arm_iommu_detach_device(host->dev); + arm_iommu_release_mapping(mapping); + + domain = iommu_get_domain_for_dev(host->dev); + } +#endif + /* * We may not always want to enable IOMMU support (for example if the * host1x firewall is already enabled and we don't support addressing