[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 2/6] iommu/arm: Add iommu_dt_xlate()


  • To: Michal Orzel <michal.orzel@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
  • Date: Mon, 5 Jun 2023 13:50:19 -0400
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eAbcGzmtVBTCC2KkGolv8uxFTfs2q7whkhgxrrlLj0U=; b=C9LjFx+tlpw2WAJ1UhVcS8vbcpWh/0h8UQry3DORXwv1T6SzWHIHQ0AAFNY9gfMkaE5/xIDXVMUDVuaVNvw7OtRaLjtWkvrDGHPS5+ifp0H/XlhvpLmFO9o6yN6GHBu42bBK5FwlVuYmMQuOH/Typ+syqu6TnSXWoFVrqTRKdRWyzFOiSf9HIxzv3jx9EI7mXcECJICFu7nx1tYeCVt0MYe0EtPNKDRoJnTl0m0ffXbLpJv46eY0F8xVQE+keIZy1aIxF2aO/aWlfxdcXHkMCEah8YSaCpRCOyG3i8dYdLzwwdJwocYwDTL1VQgeEqtZvk6AFUbxLwk/HeQs9YuODA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EgasPQ1EvOwxTCa2B9lzcZxnsF5OA7wZrV2/3F4oP1Nh6foZyw4qvWTvVG9eW3OqEaOdPFr2twq0jC5vpx0HckMS1f8U+FYxF6AyyI8kOeC2SZ51DlyJdQ6GT5U4xxjE+HjNq8UXgzh85AkO1o0+ANlgApgR9X2Z5EqqOEyntjse+IivV/zUOmZcdBaOyf5AhArb/a6C/AimM95xnARQxhYps3+BvHBM51xYDEM76bj4T2Rw84kdsQt65Nj/oKMeVbH+BNHyXW5VoEMbaxsRvFMIweQfiVFs3hbay8uYjo8YsFE3/u1AQzt1fnzCzdJ9M4+iT1tb6eqHv04I5ffzGw==
  • Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>
  • Delivery-date: Mon, 05 Jun 2023 17:50:42 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 5/22/23 10:48, Michal Orzel wrote:
> Hi Stewart,
> 
> On 18/05/2023 23:06, Stewart Hildebrand wrote:
>>
>>
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
>>
>> Move code for processing DT IOMMU specifier to a separate helper.
>> This helper will be re-used for adding PCI devices by the subsequent
>> patches as we will need exact the same actions for processing
>> DT PCI-IOMMU specifier.
>>
>> While at it introduce NO_IOMMU to avoid magic "1".
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> # rename
>> ---
>> v2->v3:
>> * no change
>>
>> v1->v2:
>> * no change
>>
>> downstream->v1:
>> * trivial rebase
>> * s/dt_iommu_xlate/iommu_dt_xlate/
>>
>> (cherry picked from commit c26bab0415ca303df86aba1d06ef8edc713734d3 from
>>  the downstream branch poc/pci-passthrough from
>>  https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
>> ---
>>  xen/drivers/passthrough/device_tree.c | 42 +++++++++++++++++----------
>>  1 file changed, 27 insertions(+), 15 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/device_tree.c 
>> b/xen/drivers/passthrough/device_tree.c
>> index b5bd13393b56..1b50f4670944 100644
>> --- a/xen/drivers/passthrough/device_tree.c
>> +++ b/xen/drivers/passthrough/device_tree.c
>> @@ -127,15 +127,39 @@ int iommu_release_dt_devices(struct domain *d)
>>      return 0;
>>  }
>>
>> +/* This correlation must not be altered */
>> +#define NO_IOMMU    1
>> +
>> +static int iommu_dt_xlate(struct device *dev,
>> +                          struct dt_phandle_args *iommu_spec)
> I think iommu_spec can be const.

Yes, good catch

>> +{
>> +    const struct iommu_ops *ops = iommu_get_ops();
>> +    int rc;
>> +
>> +    if ( !dt_device_is_available(iommu_spec->np) )
>> +        return NO_IOMMU;
>> +
>> +    rc = iommu_fwspec_init(dev, &iommu_spec->np->dev);
>> +    if ( rc )
>> +        return rc;
>> +
>> +    /*
>> +     * Provide DT IOMMU specifier which describes the IOMMU master
>> +     * interfaces of that device (device IDs, etc) to the driver.
>> +     * The driver is responsible to decide how to interpret them.
>> +     */
>> +    return ops->dt_xlate(dev, iommu_spec);
> Wouldn't it be better to move the check (!ops->dt_xlate) from 
> iommu_add_dt_device to this helper?
> After all it is the only function that calls dt_xlate so for me it would be a 
> natural placement.
> Looking at the next patch it will also reduce the similar check in 
> iommu_add_dt_pci_sideband_ids.

Yes, I will move it



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.