Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp6275499rwl; Wed, 22 Mar 2023 08:34:16 -0700 (PDT) X-Google-Smtp-Source: AK7set+KioUZ9gzs75VRDNs0OjZ7jTYX2E8ikcFK9QRtpIapBCp80FWVlvjHhwqUSRl4mqGTNVoP X-Received: by 2002:a17:907:d9f:b0:930:f953:9608 with SMTP id go31-20020a1709070d9f00b00930f9539608mr10435021ejc.0.1679499255932; Wed, 22 Mar 2023 08:34:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679499255; cv=none; d=google.com; s=arc-20160816; b=k9DHh250qRJuz2RRCoUMdgva5ur32URU5I1NTNTAMJ1FGuaEO7jXLB6CHhPCPFJBCg X0Wa4v4pK0EMyGNsy3oLoDccurPgITBxWPZMEaCoXbovwUFNY1s62MqtV4ZWP26p6zLg C/O8eY4VP/gmKj/VCCe11czaFVl6Z577jrSeERU2k9CVEbQQhJDwEiEc0dLH6vYrFwru IucYBEWtBD57WD28Lfo2QgIo6NqcTcOxvhbEFj5r2vgZNW602M8P/ncIT7bmaIvMMyJO E2WtIrcSC7RQ4Fzv+pHRZFoP1Tv6e3X3daVtn8H1pQyufN5/9clOxtdT28sJcWc3IM3H wVzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=+HBQCTOq+QqVNkJZ+4QIpkhFmpEgZaWVINrTQNwuq8s=; b=KqdLKIU7/+3pjqMvrnNUbZav7BmQalYj+BYK8wc3WS8q7AGmeCrOw7atp+K8H4vhNJ g97ACvDTPzBsTWpklEalDjoha1iFiuXxh2Z2vLWyL9e3iyXQvaXHKLkyYaNfScE2b9Nx m4/qMZPoqenI9UnDWMDkXu5ERcuAAM0eAnNzoRZVVS6hZxMUR4LKnPqK/xktj6nVHNwS NnujFNJjA4ZXy+mVT8GCCjh4FfxFZyjIbjU2ED2K2blpmFXrpPDJ/ULKB9NCioVMfntz E68n+nHCK88DJ9zPXT99aCcmj7uVQzRyNPBlBX8brg1/a/yNCcQmlQv0CL6tRMo2JQUC nWAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=jtA9AxTT; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i24-20020a1709061cd800b008c1d4ed00d3si16161384ejh.792.2023.03.22.08.33.50; Wed, 22 Mar 2023 08:34:15 -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; dkim=pass header.i=@ziepe.ca header.s=google header.b=jtA9AxTT; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231326AbjCVPQm (ORCPT + 99 others); Wed, 22 Mar 2023 11:16:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49606 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230136AbjCVPQj (ORCPT ); Wed, 22 Mar 2023 11:16:39 -0400 Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 351A462DA7 for ; Wed, 22 Mar 2023 08:16:37 -0700 (PDT) Received: by mail-qt1-x82e.google.com with SMTP id t9so22985791qtx.8 for ; Wed, 22 Mar 2023 08:16:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1679498196; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=+HBQCTOq+QqVNkJZ+4QIpkhFmpEgZaWVINrTQNwuq8s=; b=jtA9AxTTQYLWB7g+hH3bMTXf6/+n7o0yqNShap1Y/5kaqMz+ZsQnoWfMK1YEkR6vDv uMbSfqrKL63R8h/d8AAZZxfhib1Yl8fU/pUs0IRRH/JLWeU8RlOS9nlRbvSWA9kYGUip 4yJwpCY5y7QdCfczUsHb4aoiMShjYNLlqTJhvKfdjKrkbGAf+Ta21paUjWRmky2YCMrn N3M3oBmgh14x5VM9Z6JOP1a/w38eI60Cx3MmdhFC2PPDKJBJ6mFobV8yTrRjb4CZg6gU HVcsrp6lVMLs1xFPb0KY92STzTZ/CNk7B2shU5ztbNJAK9qBev/T+OqBSPBW+eg5XXr5 aUNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679498196; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+HBQCTOq+QqVNkJZ+4QIpkhFmpEgZaWVINrTQNwuq8s=; b=SJ0Yc5zeVt7+DCdok0Bi/oq56p679ytQsH6zkFPvax1nofIslhjsUfpz6cFG98xS5w hb8JQH2luP1ASvrLz+jhlsPbCc0OjvPeju72KKQ/Dh8dsJouCckIMkhCgwL1yt13XI66 LlrLCJzPYJNHhXmCqbqjU+F2YQx7rosngYEH4vt0TO0XDMxbeRPKvE+2Tq5tve5+bdtX xVZoT88MGrPd3KvvHYbAOjIHBOF2mP8+ji/PpHfnwdp1+K+gszlSMryi3WVJ6QJ7Uk3k kLKsFdSW8rVTxnrmWW+kBkJvMsocaEax1Ygqe2XkXS4slvnCxdVVyrwWhD0sTLQv9NGm Waqw== X-Gm-Message-State: AO0yUKVe8SUi7ghjtPUa2OHjuWKsH0TYOR1N2aYpuZ6RajrapMrlO9Ns MeYGNhIOnH5QPEDncVvJA4lUcQ== X-Received: by 2002:a05:622a:cf:b0:3e3:7dff:663e with SMTP id p15-20020a05622a00cf00b003e37dff663emr4344627qtw.27.1679498196355; Wed, 22 Mar 2023 08:16:36 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-68-25-194.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.68.25.194]) by smtp.gmail.com with ESMTPSA id t21-20020a37aa15000000b00746b7372d62sm459437qke.27.2023.03.22.08.16.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Mar 2023 08:16:35 -0700 (PDT) Received: from jgg by wakko with local (Exim 4.95) (envelope-from ) id 1pf0CZ-000oxC-3N; Wed, 22 Mar 2023 12:16:35 -0300 Date: Wed, 22 Mar 2023 12:16:35 -0300 From: Jason Gunthorpe To: Steven Price Cc: Heiko Stuebner , Joerg Roedel , Will Deacon , Robin Murphy , iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Lu Baolu Subject: Re: [PATCH] iommu/rockchip: Add missing set_platform_dma_ops callback Message-ID: References: <20230315164152.333251-1-steven.price@arm.com> <85607806-b888-2d5e-67a4-e9d63ebd1976@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable 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 Wed, Mar 22, 2023 at 03:08:41PM +0000, Steven Price wrote: > @@ -1035,8 +1055,9 @@ static int rk_iommu_attach_device(struct iommu_domain *domain, > if (iommu->domain == domain) > return 0; > > - if (iommu->domain) > - rk_iommu_detach_device(iommu->domain, dev); > + ret = rk_iommu_identity_attach(&rk_identity_domain, dev); > + if (ret) > + return ret; > > iommu->domain = domain; > > @@ -1049,8 +1070,6 @@ static int rk_iommu_attach_device(struct iommu_domain *domain, > return 0; > > ret = rk_iommu_enable(iommu); > - if (ret) > - rk_iommu_detach_device(iommu->domain, dev); I think this still needs error handling, it should put it back to the identity domain and return an error code if it fails to attach to the requested domain. It should also initlaize iommu->domain to the identity domain when the iommu struct is allocated. The iommu->domain should never be NULL. identity domain means the IOMMU is turned off which was previously called "detached". Otherwise it looks like I would expect, thanks Jason