From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 641D57473 for ; Wed, 29 Nov 2023 06:09:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--moritzf.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="00uqWIrC" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-5d032ab478fso47749077b3.0 for ; Tue, 28 Nov 2023 22:09:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701238147; x=1701842947; darn=lists.linux.dev; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=00uqWIrCQl5GmYJO3GSjIbcVF/XpjLfkNMo5oJnzPQI65r2y2G++5nNZKpRhxxNg4v W/NKiy5dAFe1s5LSWjY/UsL4VRnn72H4L3R7ieQ7GuOu79UJsXpwycY3yk8vWMdVn1p0 /77K9Ca4YV2sM7GD5RmV7wEUg6J2dWFCbI4fNDPBBiXgE1QgIicAniMyfdyuUgoWgf8k p9a5nFa1DnnaYdbVRnjzn7fk6RodYrjuZ0866YdxZLHvSM0Dw8cc3Ofyo164PzvJc/hv EYcVbtbxE21pj3db4PYDJ6FnCjTTrkQY8qnpyVPkY0Mb8peZTG8E00XJt42Y2zyYnvVj G8uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701238147; x=1701842947; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=HWC8WWLOACKqIy34w+3qR1lU98Qk6Ohay7SOjMzPpJVDNM380tOGX922JSFDZ5m998 E8mOuFIsOMeSK5NBmtVxNPbf0ik7Orr9c+ifuMBnpm4JvCfaj9ZXJ+l8A/vvHOsNkwrP nTgkUDtjiLlD/GkkEVSPXXYRhCtiwL4hWPUtBsLmtnW8HV9Lv/SISqhzMTG2bngn9Fy0 VLyEzuf3hmaAs4AyvVTfO63nz9ArcsBWY1R/E/txJJ1vrQI89HemMnQ9E29o92EJN7j3 9qu3VmGLPjphgmp1yKRrdbViZrqtiMEvXDCr90nFC41A2YMCH3eCZHSz0g0UPNGUANK4 AFfQ== X-Gm-Message-State: AOJu0YxQDbEhxbSL1CIv8+Z1gAhx8+KQFBrP7ALS2zkdGjOw4bIBhdrh QMmqnP2DijFXfetdom51AKhz74wzyjiX X-Google-Smtp-Source: AGHT+IErKpR33sSuZDb458AGzbTTTl+rmkeUZNxvoUYyius6/ySrcsirHg/Fcs0NR9CFHutX0EyL3PHfE3h2 X-Received: from morats.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:d9e]) (user=moritzf job=sendgmr) by 2002:a25:3741:0:b0:db5:2a4:aef1 with SMTP id e62-20020a253741000000b00db502a4aef1mr107973yba.13.1701238147290; Tue, 28 Nov 2023 22:09:07 -0800 (PST) Date: Wed, 29 Nov 2023 06:09:06 +0000 In-Reply-To: <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Precedence: bulk X-Mailing-List: asahi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <0-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Message-ID: <20231129060906.qti7uztsk2u7ehlp@google.com> Subject: Re: [PATCH 07/10] acpi: Do not return struct iommu_ops from acpi_iommu_configure_id() From: Moritz Fischer To: Jason Gunthorpe Cc: David Airlie , Alyssa Rosenzweig , Albert Ou , asahi@lists.linux.dev, Catalin Marinas , Danilo Krummrich , Daniel Vetter , Dexuan Cui , devicetree@vger.kernel.org, dmaengine@vger.kernel.org, dri-devel@lists.freedesktop.org, David Woodhouse , Frank Rowand , Hanjun Guo , Haiyang Zhang , iommu@lists.linux.dev, Jon Hunter , Joerg Roedel , Karol Herbst , Krzysztof Kozlowski , "K. Y. Srinivasan" , Laxman Dewangan , Len Brown , linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hyperv@vger.kernel.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux-snps-arc@lists.infradead.org, linux-tegra@vger.kernel.org, Russell King , Lorenzo Pieralisi , Lyude Paul , Marek Szyprowski , nouveau@lists.freedesktop.org, Palmer Dabbelt , Paul Walmsley , "Rafael J. Wysocki" , Rob Herring , Robin Murphy , Sudeep Holla , Suravee Suthikulpanit , Sven Peter , Thomas Bogendoerfer , Vineet Gupta , Vinod Koul , Wei Liu , Will Deacon , Lu Baolu , Christoph Hellwig , Jerry Snitselaar , Hector Martin , Moritz Fischer , patches@lists.linux.dev, "Rafael J. Wysocki" , Rob Herring , Thierry Reding Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes On Tue, Nov 28, 2023 at 08:48:03PM -0400, Jason Gunthorpe wrote: > Nothing needs this pointer. Return a normal error code with the usual > IOMMU semantic that ENODEV means 'there is no IOMMU driver'. > Acked-by: Rafael J. Wysocki > Reviewed-by: Jerry Snitselaar > Tested-by: Hector Martin > Signed-off-by: Jason Gunthorpe > --- > drivers/acpi/scan.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index 444a0b3c72f2d8..340ba720c72129 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1562,8 +1562,7 @@ static inline const struct iommu_ops > *acpi_iommu_fwspec_ops(struct device *dev) > return fwspec ? fwspec->ops : NULL; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > int err; > const struct iommu_ops *ops; > @@ -1577,7 +1576,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > ops = acpi_iommu_fwspec_ops(dev); > if (ops) { > mutex_unlock(&iommu_probe_device_lock); > - return ops; > + return 0; > } > err = iort_iommu_configure_id(dev, id_in); > @@ -1594,12 +1593,14 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > /* Ignore all other errors apart from EPROBE_DEFER */ > if (err == -EPROBE_DEFER) { > - return ERR_PTR(err); > + return err; > } else if (err) { > dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > - return NULL; > + return -ENODEV; > } > - return acpi_iommu_fwspec_ops(dev); > + if (!acpi_iommu_fwspec_ops(dev)) > + return -ENODEV; > + return 0; > } > #else /* !CONFIG_IOMMU_API */ > @@ -1611,10 +1612,9 @@ int acpi_iommu_fwspec_init(struct device *dev, u32 > id, > return -ENODEV; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > - return NULL; > + return -ENODEV; > } > #endif /* !CONFIG_IOMMU_API */ > @@ -1628,7 +1628,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > int acpi_dma_configure_id(struct device *dev, enum dev_dma_attr attr, > const u32 *input_id) > { > - const struct iommu_ops *iommu; > + int ret; > if (attr == DEV_DMA_NOT_SUPPORTED) { > set_dma_ops(dev, &dma_dummy_ops); > @@ -1637,10 +1637,15 @@ int acpi_dma_configure_id(struct device *dev, > enum dev_dma_attr attr, > acpi_arch_dma_setup(dev); > - iommu = acpi_iommu_configure_id(dev, input_id); > - if (PTR_ERR(iommu) == -EPROBE_DEFER) > + ret = acpi_iommu_configure_id(dev, input_id); > + if (ret == -EPROBE_DEFER) > return -EPROBE_DEFER; > + /* > + * Historically this routine doesn't fail driver probing due to errors > + * in acpi_iommu_configure_id() > + */ > + > arch_setup_dma_ops(dev, 0, U64_MAX, attr == DEV_DMA_COHERENT); > return 0; > -- > 2.42.0 Reviewed-by: Moritz Fischer Cheers, Moritz From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 47C35C4167B for ; Wed, 29 Nov 2023 06:09:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID:References: Mime-Version:In-Reply-To:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NF7Gk40tRaPEeBlNvTSNadSnps/oB68nQkIb+ROFLlQ=; b=HgQxzQtPjBKuRv 1X0zF3hV9tZOSjS+rZMrufdAfeUdajR41wHmyIWy2iRNAlK5IsV30o7J/QRxRlfvRk8E9tWIFEUN+ VaNXIdzo/eM4KH0BwLPA1PNeZALOvYBgF0xLZJQO6iZ5mOd7PjoiV2fR9zvCeHa4UA5MPT9KBaKoB 0exDY4TUq10P67h+dOUjmIID7WRdEN0XcX21C8XK04HlrTo+kGnG1A6mtlo1kX9ZQ150uqJCOPBgC zXAgZ9ns3DW7usw9fEfPeiaGNUeghCy2hcHIlawGTHWQsRJDdgoOzCuS3uqa2Sl5jXok/fjmmXcfY HkEaZODRH5QDa22M8d7w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r8Dl3-007BdV-17; Wed, 29 Nov 2023 06:09:13 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r8Dkz-007BcG-06 for linux-riscv@lists.infradead.org; Wed, 29 Nov 2023 06:09:10 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5d032ab478fso47749127b3.0 for ; Tue, 28 Nov 2023 22:09:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701238147; x=1701842947; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=DJ2VEso2sYPPmOyuvX4coVlifbiEMRRb8P0dciioZGPqB9HXB4H0mzLPGpH0vmcCp1 ZvjJ0x+wTSxngsvmktPJ6uz4oit1bzAKxPuAbxWx1Io5c7cJ3WfP8DZUAyD9UeDUc0WO UbLfzLKYgtSf4KxRWtNX7RdIahoIsF/wH4DZjGj8cX+XhTDwBhdkmvnOejG+Se/gJbpt NyGv8zMjC3zvsK8D1HIvzTZhAFcF9p9aJR1/2oG/4J2qRf59ueSmyProlcrXvCWws6u/ mx1rtF5YNdiRC9vdsdmzR5i3XEx8GuYamq+atrokZRvIGMb8jz5DzPWPymFScw7CBXrk sHiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701238147; x=1701842947; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=vF/g6Lfsu4MlFZjD4BVCT26/FDVpYHpFgB2jLjWuJpgFfZ5yld3Yxzd86PWDGOmcg6 7bd5ROW2fzElHbbpAjh+/ssMqt4kJYXTloG4ZzCzsBx3lwQ4Sf2xhwgthTZom+C4Wnvh mlarvXOuUkQBG//ed+Uz1FoSO4djDv/UKr3vk7T3FjLNBGS6g5pjNxLBS6KJyylrXIP0 v26wySrSCCxdc3g2ChIDYpI3JoT0csoTwL5zXukVF9Gtz4+3iebKxHGQsf9/YkLm96Vi a02TAy77Hn2h05puHSm/EU9RuB0mBb8oMuM+/CnY1CJ4teVApypldOyaBb2BntQ7LQWN x7eA== X-Gm-Message-State: AOJu0Yy4s64Lv8bx7BdpNMumjj63kvGLlgIDQMM9zy+/S0CTZtyEw4Ka c4ivz4A9VspKm+m3Z5nEGBOAB3L71+x8 X-Google-Smtp-Source: AGHT+IErKpR33sSuZDb458AGzbTTTl+rmkeUZNxvoUYyius6/ySrcsirHg/Fcs0NR9CFHutX0EyL3PHfE3h2 X-Received: from morats.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:d9e]) (user=moritzf job=sendgmr) by 2002:a25:3741:0:b0:db5:2a4:aef1 with SMTP id e62-20020a253741000000b00db502a4aef1mr107973yba.13.1701238147290; Tue, 28 Nov 2023 22:09:07 -0800 (PST) Date: Wed, 29 Nov 2023 06:09:06 +0000 In-Reply-To: <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Mime-Version: 1.0 References: <0-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Message-ID: <20231129060906.qti7uztsk2u7ehlp@google.com> Subject: Re: [PATCH 07/10] acpi: Do not return struct iommu_ops from acpi_iommu_configure_id() From: Moritz Fischer To: Jason Gunthorpe Cc: David Airlie , Alyssa Rosenzweig , Albert Ou , asahi@lists.linux.dev, Catalin Marinas , Danilo Krummrich , Daniel Vetter , Dexuan Cui , devicetree@vger.kernel.org, dmaengine@vger.kernel.org, dri-devel@lists.freedesktop.org, David Woodhouse , Frank Rowand , Hanjun Guo , Haiyang Zhang , iommu@lists.linux.dev, Jon Hunter , Joerg Roedel , Karol Herbst , Krzysztof Kozlowski , "K. Y. Srinivasan" , Laxman Dewangan , Len Brown , linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hyperv@vger.kernel.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux-snps-arc@lists.infradead.org, linux-tegra@vger.kernel.org, Russell King , Lorenzo Pieralisi , Lyude Paul , Marek Szyprowski , nouveau@lists.freedesktop.org, Palmer Dabbelt , Paul Walmsley , "Rafael J. Wysocki" , Rob Herring , Robin Murphy , Sudeep Holla , Suravee Suthikulpanit , Sven Peter , Thomas Bogendoerfer , Vineet Gupta , Vinod Koul , Wei Liu , Will Deacon , Lu Baolu , Christoph Hellwig , Jerry Snitselaar , Hector Martin , Moritz Fischer , patches@lists.linux.dev, "Rafael J. Wysocki" , Rob Herring , Thierry Reding X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231128_220909_068584_4A44C11F X-CRM114-Status: GOOD ( 22.14 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org On Tue, Nov 28, 2023 at 08:48:03PM -0400, Jason Gunthorpe wrote: > Nothing needs this pointer. Return a normal error code with the usual > IOMMU semantic that ENODEV means 'there is no IOMMU driver'. > Acked-by: Rafael J. Wysocki > Reviewed-by: Jerry Snitselaar > Tested-by: Hector Martin > Signed-off-by: Jason Gunthorpe > --- > drivers/acpi/scan.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index 444a0b3c72f2d8..340ba720c72129 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1562,8 +1562,7 @@ static inline const struct iommu_ops > *acpi_iommu_fwspec_ops(struct device *dev) > return fwspec ? fwspec->ops : NULL; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > int err; > const struct iommu_ops *ops; > @@ -1577,7 +1576,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > ops = acpi_iommu_fwspec_ops(dev); > if (ops) { > mutex_unlock(&iommu_probe_device_lock); > - return ops; > + return 0; > } > err = iort_iommu_configure_id(dev, id_in); > @@ -1594,12 +1593,14 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > /* Ignore all other errors apart from EPROBE_DEFER */ > if (err == -EPROBE_DEFER) { > - return ERR_PTR(err); > + return err; > } else if (err) { > dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > - return NULL; > + return -ENODEV; > } > - return acpi_iommu_fwspec_ops(dev); > + if (!acpi_iommu_fwspec_ops(dev)) > + return -ENODEV; > + return 0; > } > #else /* !CONFIG_IOMMU_API */ > @@ -1611,10 +1612,9 @@ int acpi_iommu_fwspec_init(struct device *dev, u32 > id, > return -ENODEV; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > - return NULL; > + return -ENODEV; > } > #endif /* !CONFIG_IOMMU_API */ > @@ -1628,7 +1628,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > int acpi_dma_configure_id(struct device *dev, enum dev_dma_attr attr, > const u32 *input_id) > { > - const struct iommu_ops *iommu; > + int ret; > if (attr == DEV_DMA_NOT_SUPPORTED) { > set_dma_ops(dev, &dma_dummy_ops); > @@ -1637,10 +1637,15 @@ int acpi_dma_configure_id(struct device *dev, > enum dev_dma_attr attr, > acpi_arch_dma_setup(dev); > - iommu = acpi_iommu_configure_id(dev, input_id); > - if (PTR_ERR(iommu) == -EPROBE_DEFER) > + ret = acpi_iommu_configure_id(dev, input_id); > + if (ret == -EPROBE_DEFER) > return -EPROBE_DEFER; > + /* > + * Historically this routine doesn't fail driver probing due to errors > + * in acpi_iommu_configure_id() > + */ > + > arch_setup_dma_ops(dev, 0, U64_MAX, attr == DEV_DMA_COHERENT); > return 0; > -- > 2.42.0 Reviewed-by: Moritz Fischer Cheers, Moritz _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6A31BC4167B for ; Wed, 29 Nov 2023 06:09:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID:References: Mime-Version:In-Reply-To:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vjPVVBS1esHqULIgpYzuysRUuZ6QXjqjp9BevwFGM5o=; b=kc1CFYQsRVZmG+ ozEJC37+7ufwzh5CRbI36la8Vu4e93T2515EpCUSiWsUlraq/pHzxyJmq4x1nqRrgiV4qYSMMqpj3 5Emz0OUP8Lwcb5vRTv5ldXTfeUyHG3bTRMuccBTgWcOFHe37TCMLhc5/3Jdu/Rr53BZb1LnMfh6gw zCv+WhHxJyTKEjSmyEu3lviANBLYhP4Q/7ze6CoDkGRyrUQj7CJFFyOnnmDSly1sVspduwPfVvzbB yS6F2WsnsDjqsk0YBSlh9GvH3XYupFvsojbbox27Jged1IW8AwkSxGl/Kjx+ORYPQ5Lr4vX1rW/oo Ugx/+G3gRRSFG9ieVwRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r8Dl4-007BeA-1v; Wed, 29 Nov 2023 06:09:14 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r8Dkz-007BcF-0F for linux-snps-arc@lists.infradead.org; Wed, 29 Nov 2023 06:09:11 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5ca2a6f07b6so93427187b3.2 for ; Tue, 28 Nov 2023 22:09:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701238147; x=1701842947; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=DJ2VEso2sYPPmOyuvX4coVlifbiEMRRb8P0dciioZGPqB9HXB4H0mzLPGpH0vmcCp1 ZvjJ0x+wTSxngsvmktPJ6uz4oit1bzAKxPuAbxWx1Io5c7cJ3WfP8DZUAyD9UeDUc0WO UbLfzLKYgtSf4KxRWtNX7RdIahoIsF/wH4DZjGj8cX+XhTDwBhdkmvnOejG+Se/gJbpt NyGv8zMjC3zvsK8D1HIvzTZhAFcF9p9aJR1/2oG/4J2qRf59ueSmyProlcrXvCWws6u/ mx1rtF5YNdiRC9vdsdmzR5i3XEx8GuYamq+atrokZRvIGMb8jz5DzPWPymFScw7CBXrk sHiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701238147; x=1701842947; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=mwRcTWYteCtNuFIaRMM9a92iOIbnVMvYSfndfMMEKj/ekLPrIrqzwonEvW4Xkpf4ue AOMQdp0WQT/nlTlgGq0O+krt7K1VO4nADxg81qGuzzEeGVRPdsRo85UXhB8bWSpABCBz Xer6yBilC2UrSS7GzAcmUGZkK2IA3ZcFQcX/HPnQKK5hSaRDH0OInEkdhT1gMEJVAF1E sYdO6nIZVZQeEoV8PSnCnSlnajnuOsXFOj2+Jwj35+5ksiqJY77pmrruvwgKRVzX0l43 7HuFHylKomBiz4WnqCyN0SRgWW2+CKjtZcbNRCQ4VjLvhb7+ecP6Hv7Z8lgdAvhP6VuC jgiw== X-Gm-Message-State: AOJu0YyyxePiAk6pH6MkrA062YRdv+XS6Zi1PqLTmGlEbDuonbgtmPXN JmXP4okNEyGAWFh7FyZ3U4QZmBQoqaWV X-Google-Smtp-Source: AGHT+IErKpR33sSuZDb458AGzbTTTl+rmkeUZNxvoUYyius6/ySrcsirHg/Fcs0NR9CFHutX0EyL3PHfE3h2 X-Received: from morats.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:d9e]) (user=moritzf job=sendgmr) by 2002:a25:3741:0:b0:db5:2a4:aef1 with SMTP id e62-20020a253741000000b00db502a4aef1mr107973yba.13.1701238147290; Tue, 28 Nov 2023 22:09:07 -0800 (PST) Date: Wed, 29 Nov 2023 06:09:06 +0000 In-Reply-To: <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Mime-Version: 1.0 References: <0-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Message-ID: <20231129060906.qti7uztsk2u7ehlp@google.com> Subject: Re: [PATCH 07/10] acpi: Do not return struct iommu_ops from acpi_iommu_configure_id() From: Moritz Fischer To: Jason Gunthorpe Cc: David Airlie , Alyssa Rosenzweig , Albert Ou , asahi@lists.linux.dev, Catalin Marinas , Danilo Krummrich , Daniel Vetter , Dexuan Cui , devicetree@vger.kernel.org, dmaengine@vger.kernel.org, dri-devel@lists.freedesktop.org, David Woodhouse , Frank Rowand , Hanjun Guo , Haiyang Zhang , iommu@lists.linux.dev, Jon Hunter , Joerg Roedel , Karol Herbst , Krzysztof Kozlowski , "K. Y. Srinivasan" , Laxman Dewangan , Len Brown , linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hyperv@vger.kernel.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux-snps-arc@lists.infradead.org, linux-tegra@vger.kernel.org, Russell King , Lorenzo Pieralisi , Lyude Paul , Marek Szyprowski , nouveau@lists.freedesktop.org, Palmer Dabbelt , Paul Walmsley , "Rafael J. Wysocki" , Rob Herring , Robin Murphy , Sudeep Holla , Suravee Suthikulpanit , Sven Peter , Thomas Bogendoerfer , Vineet Gupta , Vinod Koul , Wei Liu , Will Deacon , Lu Baolu , Christoph Hellwig , Jerry Snitselaar , Hector Martin , Moritz Fischer , patches@lists.linux.dev, "Rafael J. Wysocki" , Rob Herring , Thierry Reding X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231128_220909_112005_A3BF8A83 X-CRM114-Status: GOOD ( 22.14 ) X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes" Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+linux-snps-arc=archiver.kernel.org@lists.infradead.org On Tue, Nov 28, 2023 at 08:48:03PM -0400, Jason Gunthorpe wrote: > Nothing needs this pointer. Return a normal error code with the usual > IOMMU semantic that ENODEV means 'there is no IOMMU driver'. > Acked-by: Rafael J. Wysocki > Reviewed-by: Jerry Snitselaar > Tested-by: Hector Martin > Signed-off-by: Jason Gunthorpe > --- > drivers/acpi/scan.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index 444a0b3c72f2d8..340ba720c72129 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1562,8 +1562,7 @@ static inline const struct iommu_ops > *acpi_iommu_fwspec_ops(struct device *dev) > return fwspec ? fwspec->ops : NULL; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > int err; > const struct iommu_ops *ops; > @@ -1577,7 +1576,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > ops = acpi_iommu_fwspec_ops(dev); > if (ops) { > mutex_unlock(&iommu_probe_device_lock); > - return ops; > + return 0; > } > err = iort_iommu_configure_id(dev, id_in); > @@ -1594,12 +1593,14 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > /* Ignore all other errors apart from EPROBE_DEFER */ > if (err == -EPROBE_DEFER) { > - return ERR_PTR(err); > + return err; > } else if (err) { > dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > - return NULL; > + return -ENODEV; > } > - return acpi_iommu_fwspec_ops(dev); > + if (!acpi_iommu_fwspec_ops(dev)) > + return -ENODEV; > + return 0; > } > #else /* !CONFIG_IOMMU_API */ > @@ -1611,10 +1612,9 @@ int acpi_iommu_fwspec_init(struct device *dev, u32 > id, > return -ENODEV; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > - return NULL; > + return -ENODEV; > } > #endif /* !CONFIG_IOMMU_API */ > @@ -1628,7 +1628,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > int acpi_dma_configure_id(struct device *dev, enum dev_dma_attr attr, > const u32 *input_id) > { > - const struct iommu_ops *iommu; > + int ret; > if (attr == DEV_DMA_NOT_SUPPORTED) { > set_dma_ops(dev, &dma_dummy_ops); > @@ -1637,10 +1637,15 @@ int acpi_dma_configure_id(struct device *dev, > enum dev_dma_attr attr, > acpi_arch_dma_setup(dev); > - iommu = acpi_iommu_configure_id(dev, input_id); > - if (PTR_ERR(iommu) == -EPROBE_DEFER) > + ret = acpi_iommu_configure_id(dev, input_id); > + if (ret == -EPROBE_DEFER) > return -EPROBE_DEFER; > + /* > + * Historically this routine doesn't fail driver probing due to errors > + * in acpi_iommu_configure_id() > + */ > + > arch_setup_dma_ops(dev, 0, U64_MAX, attr == DEV_DMA_COHERENT); > return 0; > -- > 2.42.0 Reviewed-by: Moritz Fischer Cheers, Moritz _______________________________________________ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7AE00C4706C for ; Tue, 16 Jan 2024 11:49:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A181A10E4E2; Tue, 16 Jan 2024 11:47:38 +0000 (UTC) Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by gabe.freedesktop.org (Postfix) with ESMTPS id 33B9B10E336 for ; Wed, 29 Nov 2023 06:09:08 +0000 (UTC) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-5cef61289fdso63994047b3.1 for ; Tue, 28 Nov 2023 22:09:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701238147; x=1701842947; darn=lists.freedesktop.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=fZFuFMGTHHI+2S3GkZRdB7djsxMSSARAGmJ4f/x5HADSOOrfnNL6N67bmgpQhWFZCA swq+Zx1zYMIlhQEa3OwqT2mSbUPzuNxSZkdPIVKqA2PJ86jV3YHRvWa7zyJoiwXXzZAM NVUU6A0aN1DogD2azFxUv4vTS0IKnCfvMy0aYIDvtTYpjHwOBJlrOu0/e/1EYr7rp11L cbsACTMlIWEBzxIPuji9npGm1ASUS2YnU0b8YnP7eicCBRdJyj4NcsBZWhhKqJ0fh40r J4FzYbQm5LOu+ilUCYP2JJefo364zrPFsB7vuZ4SrMaZbtO7qo2D3afM1Jav2w1B6J2P su3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701238147; x=1701842947; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=cfp7GVx0cyGzymxxFhq02acslWCO82m3U1G3iEXH3+WAcwcznHTMiLSiwqxFhWi6Q5 1fhL6OvQMa5uvqcpP/xmzWuYea3kf+X/siDs6IdAT4NTIXXqMG1CIZ2h7xlFFTHdXQMZ ciir+H8BZM86YjUMYAoVforpFN4IJeWlhE+uJm3pRQcvoRxFrl2SNpfTJsYf+LPbDNhm sG0xaKUx+aMe5BtHcc5uKT1oe0tC2aybmh6yxWPkk2qm8Eurs6V7GXI34Jr3C9Qoo3uQ IR0TVEuynid7Mh5YmaoLja51DhwEUV66+LNHYr18a7s+h4LHWbhtpUiHO50dgmnvjHWt n5eA== X-Gm-Message-State: AOJu0YzXJM0SaN/JYIyLn1BA4j4HtoK1o5rbgcSinDOzDClhlDDJdvM1 +PmxaoweiMlcosihiql7QkJ/iBqJskXd X-Google-Smtp-Source: AGHT+IErKpR33sSuZDb458AGzbTTTl+rmkeUZNxvoUYyius6/ySrcsirHg/Fcs0NR9CFHutX0EyL3PHfE3h2 X-Received: from morats.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:d9e]) (user=moritzf job=sendgmr) by 2002:a25:3741:0:b0:db5:2a4:aef1 with SMTP id e62-20020a253741000000b00db502a4aef1mr107973yba.13.1701238147290; Tue, 28 Nov 2023 22:09:07 -0800 (PST) Date: Wed, 29 Nov 2023 06:09:06 +0000 In-Reply-To: <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Mime-Version: 1.0 References: <0-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Message-ID: <20231129060906.qti7uztsk2u7ehlp@google.com> Subject: Re: [PATCH 07/10] acpi: Do not return struct iommu_ops from acpi_iommu_configure_id() From: Moritz Fischer To: Jason Gunthorpe Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes X-Mailman-Approved-At: Tue, 16 Jan 2024 11:47:29 +0000 X-BeenThere: nouveau@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Nouveau development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-hyperv@vger.kernel.org, "Rafael J. Wysocki" , Catalin Marinas , Lorenzo Pieralisi , Jerry Snitselaar , dri-devel@lists.freedesktop.org, patches@lists.linux.dev, Laxman Dewangan , Hanjun Guo , linux-riscv@lists.infradead.org, "K. Y. Srinivasan" , Frank Rowand , Christoph Hellwig , Alyssa Rosenzweig , Marek Szyprowski , Rob Herring , Wei Liu , Joerg Roedel , "Rafael J. Wysocki" , Dexuan Cui , Russell King , linux-acpi@vger.kernel.org, iommu@lists.linux.dev, nouveau@lists.freedesktop.org, linux-snps-arc@lists.infradead.org, Len Brown , devicetree@vger.kernel.org, Albert Ou , Suravee Suthikulpanit , Will Deacon , Sven Peter , Haiyang Zhang , Vineet Gupta , Rob Herring , Moritz Fischer , Paul Walmsley , linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vinod Koul , Thomas Bogendoerfer , Robin Murphy , Hector Martin , linux-mips@vger.kernel.org, Krzysztof Kozlowski , Thierry Reding , Palmer Dabbelt , asahi@lists.linux.dev, Daniel Vetter , Sudeep Holla , dmaengine@vger.kernel.org, David Woodhouse , Lu Baolu Errors-To: nouveau-bounces@lists.freedesktop.org Sender: "Nouveau" On Tue, Nov 28, 2023 at 08:48:03PM -0400, Jason Gunthorpe wrote: > Nothing needs this pointer. Return a normal error code with the usual > IOMMU semantic that ENODEV means 'there is no IOMMU driver'. > Acked-by: Rafael J. Wysocki > Reviewed-by: Jerry Snitselaar > Tested-by: Hector Martin > Signed-off-by: Jason Gunthorpe > --- > drivers/acpi/scan.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index 444a0b3c72f2d8..340ba720c72129 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1562,8 +1562,7 @@ static inline const struct iommu_ops > *acpi_iommu_fwspec_ops(struct device *dev) > return fwspec ? fwspec->ops : NULL; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > int err; > const struct iommu_ops *ops; > @@ -1577,7 +1576,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > ops = acpi_iommu_fwspec_ops(dev); > if (ops) { > mutex_unlock(&iommu_probe_device_lock); > - return ops; > + return 0; > } > err = iort_iommu_configure_id(dev, id_in); > @@ -1594,12 +1593,14 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > /* Ignore all other errors apart from EPROBE_DEFER */ > if (err == -EPROBE_DEFER) { > - return ERR_PTR(err); > + return err; > } else if (err) { > dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > - return NULL; > + return -ENODEV; > } > - return acpi_iommu_fwspec_ops(dev); > + if (!acpi_iommu_fwspec_ops(dev)) > + return -ENODEV; > + return 0; > } > #else /* !CONFIG_IOMMU_API */ > @@ -1611,10 +1612,9 @@ int acpi_iommu_fwspec_init(struct device *dev, u32 > id, > return -ENODEV; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > - return NULL; > + return -ENODEV; > } > #endif /* !CONFIG_IOMMU_API */ > @@ -1628,7 +1628,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > int acpi_dma_configure_id(struct device *dev, enum dev_dma_attr attr, > const u32 *input_id) > { > - const struct iommu_ops *iommu; > + int ret; > if (attr == DEV_DMA_NOT_SUPPORTED) { > set_dma_ops(dev, &dma_dummy_ops); > @@ -1637,10 +1637,15 @@ int acpi_dma_configure_id(struct device *dev, > enum dev_dma_attr attr, > acpi_arch_dma_setup(dev); > - iommu = acpi_iommu_configure_id(dev, input_id); > - if (PTR_ERR(iommu) == -EPROBE_DEFER) > + ret = acpi_iommu_configure_id(dev, input_id); > + if (ret == -EPROBE_DEFER) > return -EPROBE_DEFER; > + /* > + * Historically this routine doesn't fail driver probing due to errors > + * in acpi_iommu_configure_id() > + */ > + > arch_setup_dma_ops(dev, 0, U64_MAX, attr == DEV_DMA_COHERENT); > return 0; > -- > 2.42.0 Reviewed-by: Moritz Fischer Cheers, Moritz From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 802BAC4167B for ; Wed, 29 Nov 2023 06:09:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AA2C410E00F; Wed, 29 Nov 2023 06:09:09 +0000 (UTC) Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by gabe.freedesktop.org (Postfix) with ESMTPS id 30A0810E00F for ; Wed, 29 Nov 2023 06:09:08 +0000 (UTC) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-5ca2a6f07b6so93427157b3.2 for ; Tue, 28 Nov 2023 22:09:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701238147; x=1701842947; darn=lists.freedesktop.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=fZFuFMGTHHI+2S3GkZRdB7djsxMSSARAGmJ4f/x5HADSOOrfnNL6N67bmgpQhWFZCA swq+Zx1zYMIlhQEa3OwqT2mSbUPzuNxSZkdPIVKqA2PJ86jV3YHRvWa7zyJoiwXXzZAM NVUU6A0aN1DogD2azFxUv4vTS0IKnCfvMy0aYIDvtTYpjHwOBJlrOu0/e/1EYr7rp11L cbsACTMlIWEBzxIPuji9npGm1ASUS2YnU0b8YnP7eicCBRdJyj4NcsBZWhhKqJ0fh40r J4FzYbQm5LOu+ilUCYP2JJefo364zrPFsB7vuZ4SrMaZbtO7qo2D3afM1Jav2w1B6J2P su3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701238147; x=1701842947; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KtrAPaslMvSrZFznq3cpY4nyS514mOCdxUhLK1bsTtI=; b=NtDtDHUNXb/2aRWT1NNQpyTLbDQ3qcyvTjfmkQ6s35tOxpHh5L09fH3rcKTIgi/HxR C5jHNda+/NT5JMs74OJLzhwohg1SND8/C1PUZJvj7WgvUdIufWK3o/ykUNzrkklb7e6k O4dMB2vofYIPsALCjY4kvUXt0oPus6G2X0/fxJn/wKkw+E1IDrUqQ01593iHWifklE+f Ur6bT/ARGf2FwWI6qYfwt08muk4gRaPQVumpxvE2oe/GMihT352rpENIfCKzrtb/EAcC lPFxvwJMihIuYaY/B6QT9QvcbckhhWL6fX4UbH5S2lz0y3VcwhPNwZaRaRJ+zlZcljsD 41Ag== X-Gm-Message-State: AOJu0YzAjse6qWvcHQtKOGDRKfB85tSV1V3Uxniq57MXpx35xWUgu46u pfpvh79qKVOSOk7MheFtRecWpmXPvInG X-Google-Smtp-Source: AGHT+IErKpR33sSuZDb458AGzbTTTl+rmkeUZNxvoUYyius6/ySrcsirHg/Fcs0NR9CFHutX0EyL3PHfE3h2 X-Received: from morats.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:d9e]) (user=moritzf job=sendgmr) by 2002:a25:3741:0:b0:db5:2a4:aef1 with SMTP id e62-20020a253741000000b00db502a4aef1mr107973yba.13.1701238147290; Tue, 28 Nov 2023 22:09:07 -0800 (PST) Date: Wed, 29 Nov 2023 06:09:06 +0000 In-Reply-To: <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Mime-Version: 1.0 References: <0-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> <7-v1-720585788a7d+811b-iommu_fwspec_p1_jgg@nvidia.com> Message-ID: <20231129060906.qti7uztsk2u7ehlp@google.com> Subject: Re: [PATCH 07/10] acpi: Do not return struct iommu_ops from acpi_iommu_configure_id() From: Moritz Fischer To: Jason Gunthorpe Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-hyperv@vger.kernel.org, Karol Herbst , "Rafael J. Wysocki" , Catalin Marinas , Lorenzo Pieralisi , Jerry Snitselaar , dri-devel@lists.freedesktop.org, patches@lists.linux.dev, Laxman Dewangan , Hanjun Guo , linux-riscv@lists.infradead.org, "K. Y. Srinivasan" , Frank Rowand , Christoph Hellwig , Alyssa Rosenzweig , Marek Szyprowski , Wei Liu , Joerg Roedel , "Rafael J. Wysocki" , Dexuan Cui , Russell King , Jon Hunter , linux-acpi@vger.kernel.org, iommu@lists.linux.dev, Danilo Krummrich , nouveau@lists.freedesktop.org, linux-snps-arc@lists.infradead.org, Len Brown , devicetree@vger.kernel.org, Albert Ou , Suravee Suthikulpanit , Will Deacon , Sven Peter , Haiyang Zhang , Vineet Gupta , Rob Herring , Moritz Fischer , Paul Walmsley , linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vinod Koul , Thomas Bogendoerfer , Robin Murphy , Hector Martin , linux-mips@vger.kernel.org, Krzysztof Kozlowski , Thierry Reding , Palmer Dabbelt , asahi@lists.linux.dev, Sudeep Holla , dmaengine@vger.kernel.org, David Woodhouse , Lu Baolu Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Tue, Nov 28, 2023 at 08:48:03PM -0400, Jason Gunthorpe wrote: > Nothing needs this pointer. Return a normal error code with the usual > IOMMU semantic that ENODEV means 'there is no IOMMU driver'. > Acked-by: Rafael J. Wysocki > Reviewed-by: Jerry Snitselaar > Tested-by: Hector Martin > Signed-off-by: Jason Gunthorpe > --- > drivers/acpi/scan.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index 444a0b3c72f2d8..340ba720c72129 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1562,8 +1562,7 @@ static inline const struct iommu_ops > *acpi_iommu_fwspec_ops(struct device *dev) > return fwspec ? fwspec->ops : NULL; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > int err; > const struct iommu_ops *ops; > @@ -1577,7 +1576,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > ops = acpi_iommu_fwspec_ops(dev); > if (ops) { > mutex_unlock(&iommu_probe_device_lock); > - return ops; > + return 0; > } > err = iort_iommu_configure_id(dev, id_in); > @@ -1594,12 +1593,14 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > /* Ignore all other errors apart from EPROBE_DEFER */ > if (err == -EPROBE_DEFER) { > - return ERR_PTR(err); > + return err; > } else if (err) { > dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > - return NULL; > + return -ENODEV; > } > - return acpi_iommu_fwspec_ops(dev); > + if (!acpi_iommu_fwspec_ops(dev)) > + return -ENODEV; > + return 0; > } > #else /* !CONFIG_IOMMU_API */ > @@ -1611,10 +1612,9 @@ int acpi_iommu_fwspec_init(struct device *dev, u32 > id, > return -ENODEV; > } > -static const struct iommu_ops *acpi_iommu_configure_id(struct device > *dev, > - const u32 *id_in) > +static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > - return NULL; > + return -ENODEV; > } > #endif /* !CONFIG_IOMMU_API */ > @@ -1628,7 +1628,7 @@ static const struct iommu_ops > *acpi_iommu_configure_id(struct device *dev, > int acpi_dma_configure_id(struct device *dev, enum dev_dma_attr attr, > const u32 *input_id) > { > - const struct iommu_ops *iommu; > + int ret; > if (attr == DEV_DMA_NOT_SUPPORTED) { > set_dma_ops(dev, &dma_dummy_ops); > @@ -1637,10 +1637,15 @@ int acpi_dma_configure_id(struct device *dev, > enum dev_dma_attr attr, > acpi_arch_dma_setup(dev); > - iommu = acpi_iommu_configure_id(dev, input_id); > - if (PTR_ERR(iommu) == -EPROBE_DEFER) > + ret = acpi_iommu_configure_id(dev, input_id); > + if (ret == -EPROBE_DEFER) > return -EPROBE_DEFER; > + /* > + * Historically this routine doesn't fail driver probing due to errors > + * in acpi_iommu_configure_id() > + */ > + > arch_setup_dma_ops(dev, 0, U64_MAX, attr == DEV_DMA_COHERENT); > return 0; > -- > 2.42.0 Reviewed-by: Moritz Fischer Cheers, Moritz