Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3767034imu; Mon, 14 Jan 2019 08:40:48 -0800 (PST) X-Google-Smtp-Source: ALg8bN5pcb75fjEPMeWNu5qXRuleeb4KJ3wt96irkAcXHhYevy7ksvGI44qC9LXIG3VlXOAdPQWV X-Received: by 2002:a62:37c3:: with SMTP id e186mr26784734pfa.251.1547484048611; Mon, 14 Jan 2019 08:40:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547484048; cv=none; d=google.com; s=arc-20160816; b=iACshUcTa9o9aN8oW3XSTlW0qBzK5JT4Mrs5kT7e1su32mEvKBMn2k9i8Y+VQnSHyn l1mWum4YP52UDFbHw2oGK1ZjS8cljnPeqooKHmPjQTeEE8qCCqLpZjboloOsZeTFp4s6 VgYFiojcaMltlmGi2aJ8JV69wd7PIVqyAsldb+48yxNkPAFojq94SsvVGLC2OPxTmqzw Xj3WOXkuc0LOasZFd3dmEjBU+Jsnz6rPyoi2dD04QZ82v3LyzsyrymFSex7CeRKK7Klb SYkNIx2GUKzTn3O/ewFkWu0rty03bMhxN/ADNKTDD5WF5FN/UFsAtxgPu3TnX4owZDP0 jLaQ== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=FwCFVbNT6To/F8m+R74Z9X6AQzobn0IXLuJ9Vrx9K80=; b=X/m6DonjGNlEXmjcP+MGIhZld4zjKo8rHc94LBOjxTfkCy2qPEI6WOIeg53c4OBie8 ucRIGdjvcibVKJNXvqxlhgBaW1comFeLxp8de57d0jgPWt+P4nlsRyQi8IOxU5LP2nMB 1M90Wb/YEc52hLiSJZZjgfS/BoKx5qGnZLTbbS6lEODJNytplOya9bG4o7WKTVIFAaug 8wFvZSKW35BPsIqB2a7iq1K3XyHTlqf5eFfMizrY6o08HhB9K2ord9PZtLJbbL1p9+BV OAyqP/N5pts+kAwKHiL0tCrWfj+QyXlvF1WowOjjgnNZKFm6PlcVWSxzyQE1xV122reS 5QoQ== 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 t11si682032plo.293.2019.01.14.08.40.33; Mon, 14 Jan 2019 08:40:48 -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; 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 S1726858AbfANQiY (ORCPT + 99 others); Mon, 14 Jan 2019 11:38:24 -0500 Received: from foss.arm.com ([217.140.101.70]:37148 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726736AbfANQiY (ORCPT ); Mon, 14 Jan 2019 11:38:24 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8BEEEA78; Mon, 14 Jan 2019 08:38:23 -0800 (PST) Received: from [10.1.196.75] (e110467-lin.cambridge.arm.com [10.1.196.75]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E0FCD3F5BD; Mon, 14 Jan 2019 08:38:21 -0800 (PST) Subject: Re: [PATCH] Revert "ARM: dma-mapping: Set proper DMA ops in arm_iommu_detach_device()" To: Thierry Reding , Marek Szyprowski Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Christoph Hellwig , Russell King , Ben Skeggs , Tobias Jakobi , Bartlomiej Zolnierkiewicz References: <20190114132240.12125-1-m.szyprowski@samsung.com> <20190114160902.GB9218@ulmo> From: Robin Murphy Message-ID: <4f7fd8db-33e4-9c8d-2fee-1ca9c98a9276@arm.com> Date: Mon, 14 Jan 2019 16:38:20 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <20190114160902.GB9218@ulmo> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/01/2019 16:09, Thierry Reding wrote: > On Mon, Jan 14, 2019 at 02:22:40PM +0100, Marek Szyprowski wrote: >> This reverts commit 1874619a7df4b14b23b14877e705ae15325773e3. >> >> That patch broke IOMMU support for devices, which fails to probe for the >> first time and use deferred probe approach. When non-NULL dma_ops is set >> in arm_iommu_detach_device(), the given device later ignored by >> arch_setup_dma_ops() and stays with non-IOMMU dma_ops. >> >> Reported-by: Tobias Jakobi >> Fixes: 1874619a7df4 "ARM: dma-mapping: Set proper DMA ops in arm_iommu_detach_device()" >> Signed-off-by: Marek Szyprowski >> --- >> arch/arm/mm/dma-mapping.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) > > Can you point out exactly what drivers break because of this change? We > need to find a solution that works for everyone. Reverting is only > marginally useful because somebody will just end up wanting to revert > the revert because a different driver is now broken. At first glance, it sounds like what we really want is for arch_teardown_iommu_ops() to completely clear any ops that arch_setup_dma_ops() installed - does the below suffice? Robin. ----->8----- diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index f1e2922e447c..1e3e08a1c456 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -2390,4 +2390,6 @@ void arch_teardown_dma_ops(struct device *dev) return; arm_teardown_iommu_dma_ops(dev); + /* Let arch_setup_dma_ops() start again from scratch upon re-probe */ + set_dma_ops(dev, NULL); }