Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3296226imw; Mon, 11 Jul 2022 06:04:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vM4UlS/056ky+sdBxvt3Oc43U0b9Ec3K58kCNA0pz6+HPBMCfUDKGbfsU66Hc7xX0f/fO1 X-Received: by 2002:a63:451e:0:b0:40d:c602:4e with SMTP id s30-20020a63451e000000b0040dc602004emr15930951pga.453.1657544694942; Mon, 11 Jul 2022 06:04:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657544694; cv=none; d=google.com; s=arc-20160816; b=CqRDMFcFEjoX2xKbfequfT9utOc/HYXm95K9+2FD+jhIa1YRwyatBXvnIABjpC1KMS WRfuEEbYh2vA2QOrYi8Rtua3lKJkpQBuUGwOFHE+MvKoQGb1dn0jLA+9Hv25jWyWCcoY HBjg0qLeNJSm1nueeO2HP+LjZsP6BqcU1+R1XJ4nSTjbRpHkApicWqfHc9njJA7EsjX9 +7pbEfFdtrgK5P0hXvx7FZBF+MQ7EaP+sL8gFcFa9NxQvDv3DcfWKflZNZTWstLvAxfY 4KpWXdmmSCAruZOpvqL9/1ru7OzfY21N7/JjsFchbe79y56tdyeTEkf0nGnW9NeJf7iC iRbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=5yEL7g8jXni0dBHFueNNBDiq4MO68g8oFLKK7817UcI=; b=vzkcjKfpRb7NIemlOqJQ1Y+twJVJHuR/RCV1vfMjWjG744Yeq/JA684NPTRX+LGUfK R6Sre3ucQttLXGgqJ+hTThOHtSnHUKQI6l37Rn3HB6wBmtw2aWDMGmVgMr8QkzvNi04+ bywJG9aW59L8aUScge+avAXcrKlSFW3bH8pQepdpeB5Y33fOKtB2S7PT3Wnxxd/J9LML kU5PNdJjs9WrGdGswNKe4ciZns4V6JSi+jJn7m4R1HCiTYfkqjoi8j8N8g/Pk6zhGXsI AzKVMD7Wja4vW9p1jlYH3iTx1XQshcilm/Gftd8p5kZKuVQH99olI9+ktYj1Rn8lL95g zYkg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f4-20020a636a04000000b0040d5fd61ed1si9941675pgc.662.2022.07.11.06.04.42; Mon, 11 Jul 2022 06:04:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229832AbiGKNAP (ORCPT + 99 others); Mon, 11 Jul 2022 09:00:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230220AbiGKM77 (ORCPT ); Mon, 11 Jul 2022 08:59:59 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4F30AD70; Mon, 11 Jul 2022 05:59:36 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 75B5F1576; Mon, 11 Jul 2022 05:59:36 -0700 (PDT) Received: from [10.57.85.194] (unknown [10.57.85.194]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 049213F70D; Mon, 11 Jul 2022 05:59:33 -0700 (PDT) Message-ID: <638d1d19-dc8a-c5f0-4c91-8ed95de8fe27@arm.com> Date: Mon, 11 Jul 2022 13:59:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH 1/4] iommu/exynos: Set correct dma mask for SysMMU v5+ Content-Language: en-GB To: Krzysztof Kozlowski , Sam Protsenko Cc: Marek Szyprowski , Joerg Roedel , Will Deacon , Janghyuck Kim , Cho KyongHo , Daniel Mentz , Sumit Semwal , iommu@lists.linux-foundation.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org References: <20220702213724.3949-1-semen.protsenko@linaro.org> <20220702213724.3949-2-semen.protsenko@linaro.org> <9afb1e98-706f-ed61-892c-e3cc321364b4@linaro.org> From: Robin Murphy In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2022-07-11 13:27, Krzysztof Kozlowski wrote: > On 08/07/2022 15:18, Sam Protsenko wrote: >> On Sun, 3 Jul 2022 at 21:50, Krzysztof Kozlowski >> wrote: >>> >>> On 02/07/2022 23:37, Sam Protsenko wrote: >>>> SysMMU v5+ supports 36 bit physical address space. Set corresponding DMA >>>> mask to avoid falling back to SWTLBIO usage in dma_map_single() because >>>> of failed dma_capable() check. >>>> >>>> The original code for this fix was suggested by Marek. >>>> >>>> Originally-by: Marek Szyprowski >>> >>> This is some tip specific tag, I don't think checkpatch allows it. >>> Either use suggesgted-by or co-developed-by + SoB. >>> >> >> Yes, checkpatch is swearing at that line, though I encountered that >> tag mentioning somewhere in Documentation. Will rework it in v2. > > Yes, in tip. It did not go outside of tip. > >> >>>> Signed-off-by: Sam Protsenko >>>> --- >>>> drivers/iommu/exynos-iommu.c | 8 ++++++++ >>>> 1 file changed, 8 insertions(+) >>>> >>>> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c >>>> index 71f2018e23fe..28f8c8d93aa3 100644 >>>> --- a/drivers/iommu/exynos-iommu.c >>>> +++ b/drivers/iommu/exynos-iommu.c >>>> @@ -647,6 +647,14 @@ static int exynos_sysmmu_probe(struct platform_device *pdev) >>>> } >>>> } >>>> >>>> + if (MMU_MAJ_VER(data->version) >= 5) { >>>> + ret = dma_set_mask(dev, DMA_BIT_MASK(36)); >>>> + if (ret) { >>>> + dev_err(dev, "Unable to set DMA mask: %d\n", ret); >>> >>> Missing cleanup: iommu_device_unregister >>> and probably also: iommu_device_sysfs_remove >>> >> >> Right. Also the correct cleanup should be added for failing >> iommu_device_register() case, above of the quoted code. Will do that >> in v2, thanks. >> >> Another thing is that "remove" method is missing. But guess I'll get >> to it later, when adding modularization support for this driver. > > remove is independent of modules, so it should be here already. .suppress_bind_attrs is set in the driver, so a .remove method on its own would be dead code, since there's no way for it to be called. We can permit module unloading since the module itself can be reference counted (which in practice usually means that unloading will be denied). However that's not the case for driver binding itself, so it's better not to even pretend that removing an IOMMU's driver while other drivers are using it (usually via DMA ops without even realising) is going to have anything other than catastrophic results. Thanks, Robin.