Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp765915rwi; Thu, 20 Oct 2022 05:08:28 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5UJGhDZP0XdbzE3uNreAEnswVHCzzHy+odXzg9QVVstbYUOp1SMpk5lvEDOHQ2T3i/oZku X-Received: by 2002:a05:6402:e9d:b0:443:7833:3d7b with SMTP id h29-20020a0564020e9d00b0044378333d7bmr11494866eda.151.1666267708215; Thu, 20 Oct 2022 05:08:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666267708; cv=none; d=google.com; s=arc-20160816; b=qL+DI79vTIi1Zsnt42PNWiJZ5tdJAMuZtKcqvo9guTgyZBUVeLfSY7VYTOvrtBw868 lcu0mpHMLQxhTB7bOAX1J1bCHZ542LWbkPkaG97GYt0zHllNcqFAZYuCye2axNvEPnRk koevsj1jAyEpGeFDBYNwG5wyMfPkPUnvpgUNR2026Eg1dA7THqWxzjZQjiJ66Shoa1aW 51SpKwVsAoItBdvRd18wppIFvlhStzLd1oVb0JBFNcYtU9mx8BkX6WvYIdvaEhQykdJA Oe6b4LHghp/msTF7tGfHBGVYQ5T0VI0znPLDjt4FvMb57Itt5UP5A+lYNe6xKRM1psGS QfPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=tYdfoIPqY+T234/NdafPtOqHMoflIkl5egaJuABTq4w=; b=upU8rvCzcpFqQsG3Yq1jmC7416MxIEnaPStLpUU8zxdnAiCQ9PKZztApny8K+AhoiU jVSGmxt7C/55eSa3pm9EEea3GNM6GvPjKRt2RhM6hd3AeoJ3bbKJ6XpK6F6I4JO+23Gh yRY9X6+Si4iFDhsuIfrejt/61uFb1y3ctBrG5mhTSD3r0VlwCq/LeZaU2OWIl1KQuT58 x240xMR4ExztyB0SF41jjNoE5tgaKtAhyn02HzMeVnmDGK7zXuEdUsT6Orvs64N4WmTq 7xro+B0eqhiNWNOyby3ZDJZFWwArL1bysKaQZqHD5dCfkbJ3/TKc9Ue7A13WjgMMB3aI pElg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HtmcYdKi; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e5-20020a056402088500b004593bcff7e5si14126720edy.475.2022.10.20.05.08.02; Thu, 20 Oct 2022 05:08:28 -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=@linaro.org header.s=google header.b=HtmcYdKi; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230344AbiJTLdY (ORCPT + 99 others); Thu, 20 Oct 2022 07:33:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229489AbiJTLdU (ORCPT ); Thu, 20 Oct 2022 07:33:20 -0400 Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 760E11D73E5 for ; Thu, 20 Oct 2022 04:33:18 -0700 (PDT) Received: by mail-pg1-x52a.google.com with SMTP id b5so18948309pgb.6 for ; Thu, 20 Oct 2022 04:33:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tYdfoIPqY+T234/NdafPtOqHMoflIkl5egaJuABTq4w=; b=HtmcYdKiTzYM/L6QSAXCk8GBNXg9RCotQXIaq0FXQWN3I53f/salEcpH1a5O6lPzW1 W7e60lHutJpOqv2sZt9QwhKetUufuFicL4eT+nnL3ygQIh08JasTRNXb2ap+escpk/m4 RQSFlAAzIWjcyH37Ui/cSJgrs1q/eohLE3mZonCbeyALD2Z3s07LWh9S9L+QE55lFeqn GSFd/kaU3Qa1Lyufjz4KjraC1UIf/OcrA+I27+PzXwEb8YPL5oVuft7ZboaY/Tq5QZ5R b8m9tRYmn7GnX+rRE5dRurhoeNtyPK9+0KFXdegorAC8NTFtczzOEhkLxAOIADgWZbgT TVDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tYdfoIPqY+T234/NdafPtOqHMoflIkl5egaJuABTq4w=; b=dJZPYnNK6Vz4S6xo6F4YiKQLoUBvSdDrGkoVd3O2BCj7f81gy6vQ2P6bggAjs6n2N3 /mJ719BSFESf0mGWqrNBsi+jLIcqfc0qe31ITTY4qq/U7qlQ4LZw9nIx6U5P8feM+HyQ VZJUrmuraTmKU9FJppoQ1iCO46F8Z7/O2uIOS2wSwnK39NjSpAJKLPkiQ5qT0RgCisxv u3ZKg6/B9dsolRr/jCEfNdIz36K9Rguy2cbyIboZLdZQhaRTS0WCkb8H08/Jurmz+WWe fr9gxZ6B+DE05xbxyVe6xNXjVmgWKtxw1m7Zpg/FzsSw2dnXzi/2emMN0dfIqHft2ic5 IR1Q== X-Gm-Message-State: ACrzQf1FAtKiSEBsxI8TueuHNtjwW5NjJJfcTqo7AnBVLuSD0uNXGYvV RvEhAn+E1AQ6V7x3uI7uoQia+4dpIWxUbOVRZPd3Xw== X-Received: by 2002:a05:6a00:181c:b0:563:2c6c:2a7a with SMTP id y28-20020a056a00181c00b005632c6c2a7amr13553427pfa.28.1666265597933; Thu, 20 Oct 2022 04:33:17 -0700 (PDT) MIME-Version: 1.0 References: <20221018105149.820062-1-thierry.reding@gmail.com> In-Reply-To: <20221018105149.820062-1-thierry.reding@gmail.com> From: Ulf Hansson Date: Thu, 20 Oct 2022 13:32:41 +0200 Message-ID: Subject: Re: [PATCH] iommu: Always define struct iommu_fwspec To: Joerg Roedel , Thierry Reding Cc: Will Deacon , Robin Murphy , iommu@lists.linux.dev, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 Tue, 18 Oct 2022 at 12:51, Thierry Reding wrote: > > From: Thierry Reding > > In order to fully make use of the !IOMMU_API stub functions, make the > struct iommu_fwspec always available so that users of the stubs can keep > using the structure's internals without causing compile failures. > > Signed-off-by: Thierry Reding Reviewed-by: Ulf Hansson > --- > Hi Joerg, > > this is a rebased patch extracted from an ancient series that never > ended up getting applied: > > https://lore.kernel.org/all/20191209120005.2254786-3-thierry.reding@gmail.com/ > > You had already acked this particular patch, so maybe you can pick this > up. I've seen at least two discussions where this was brought up again, > so I figured it'd be worth sending this out again because it can help > remove a number of #ifdef blocks throughout the kernel. Yes, this would certainly help to improve the code. To me, it looks like the current stub functions, like dev_iommu_fwspec_get() for example, aren't really useful without $subject patch. Note that, I have a pending patch for mmc that would benefit from this. To prevent me from delaying that, an easy way forward, assuming there are no objections of course, would be to send this for 6.1-rc. > > include/linux/iommu.h | 39 +++++++++++++++++++-------------------- > 1 file changed, 19 insertions(+), 20 deletions(-) > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index a325532aeab5..e3295c45d18f 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -173,6 +173,25 @@ enum iommu_dev_features { > > #define IOMMU_PASID_INVALID (-1U) > > +/** > + * struct iommu_fwspec - per-device IOMMU instance data > + * @ops: ops for this device's IOMMU > + * @iommu_fwnode: firmware handle for this device's IOMMU > + * @flags: IOMMU_FWSPEC_* flags > + * @num_ids: number of associated device IDs > + * @ids: IDs which this device may present to the IOMMU > + */ > +struct iommu_fwspec { > + const struct iommu_ops *ops; > + struct fwnode_handle *iommu_fwnode; > + u32 flags; > + unsigned int num_ids; > + u32 ids[]; > +}; > + > +/* ATS is supported */ > +#define IOMMU_FWSPEC_PCI_RC_ATS (1 << 0) > + > #ifdef CONFIG_IOMMU_API > > /** > @@ -598,25 +617,6 @@ extern struct iommu_group *generic_device_group(struct device *dev); > /* FSL-MC device grouping function */ > struct iommu_group *fsl_mc_device_group(struct device *dev); > > -/** > - * struct iommu_fwspec - per-device IOMMU instance data > - * @ops: ops for this device's IOMMU > - * @iommu_fwnode: firmware handle for this device's IOMMU > - * @flags: IOMMU_FWSPEC_* flags > - * @num_ids: number of associated device IDs > - * @ids: IDs which this device may present to the IOMMU > - */ > -struct iommu_fwspec { > - const struct iommu_ops *ops; > - struct fwnode_handle *iommu_fwnode; > - u32 flags; > - unsigned int num_ids; > - u32 ids[]; > -}; > - > -/* ATS is supported */ > -#define IOMMU_FWSPEC_PCI_RC_ATS (1 << 0) > - > /** > * struct iommu_sva - handle to a device-mm bond > */ > @@ -680,7 +680,6 @@ bool iommu_group_dma_owner_claimed(struct iommu_group *group); > > struct iommu_ops {}; > struct iommu_group {}; > -struct iommu_fwspec {}; > struct iommu_device {}; > struct iommu_fault_param {}; > struct iommu_iotlb_gather {}; > -- > 2.37.3 > Kind regards Uffe