From patchwork Wed May 17 00:35:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 1782388 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=DWJ+BoUs; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QLZ1X55nSz20KF for ; Wed, 17 May 2023 10:37:04 +1000 (AEST) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4QLZ1X42drz3fHH for ; Wed, 17 May 2023 10:37:04 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=DWJ+BoUs; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com (client-ip=2a01:111:f400:7eb2::611; helo=nam02-bn1-obe.outbound.protection.outlook.com; envelope-from=jgg@nvidia.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=DWJ+BoUs; dkim-atps=neutral Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on20611.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eb2::611]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4QLZ0F4GF5z2yNy for ; Wed, 17 May 2023 10:35:57 +1000 (AEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YJU1NhCAIu2sgISBD6HK0t0N73XQMIBmBHLzsNkXKik6T22NTG6QG07g+XTrieGD9eFIHO5BoRyqIoLDRPSx9E9SPQP/H9P3NYcXc/YA9zYzd/mpK7VIS66kxKBtieTuJnDqHBACLJE7dCsz0dU8MaPa4OTmjCZ5XUrqSY+L63BX0aDh7+rQUBhWiJsMqQZJEptTinYYu7bxjM6qGonG0DHyDH8MxkRHZWOjdNkt6x7HHsgwNIdHXwRwLZ+8nnAcBXJ78WIN2yxPCSujhOqhaqv1M3I3/x1G9Ha4Yg13oyl2Bee6lnuvHBNeRXZyWO/PdXISmjCSth1uddHvXEzADA== 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=C5Kp1uktbk5uhd4+iDJPSOnkwVSi12TPgD9kQ78ob38=; b=CgG52YB2EbKcadLd0eTbNUE/kQOb4E7I8EsMpVxttM4XdH8wBNHvVmqZGL8xXb85/2sl+xtIt8UlA4jnUuXauP72d08av/YWjJ4Us3hsqx9tF5MUhfkFZdaOe7mHo7FLy1mJE8EadlbpqPozy3e3l80S0ytRpyY7WjyGpN4SW8et0KtGsXscsHpO0l4y+LqNSpNVDvpeHBUHRLSXSw5UHo9QxtOW6VKwO/iiyWKypnIH4hexS6rvl0w5deIUev8Zwd8s3tQ26AgooVF6U4IxKSIF3kYAyRrLwjrLcCIe7kbZg1vzEAVI23b+b6f7OY7r9MIK8G/ebPcxDg4o72b+YQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C5Kp1uktbk5uhd4+iDJPSOnkwVSi12TPgD9kQ78ob38=; b=DWJ+BoUsGwtGtKujfTy3k22qdhukCoGMVBdBoZYIUjEcyUiYWwkJRUPoZoFh2ZYheR0d4kVEsHqxw1mZQeoaJmC9laU/NlHsm4tg0lciRU8o3sH546d8Mj7ESSJalNc9ln4kKoB1M7PRQ/BX15zo4q36eBMHPjfFSI5NIXxgP2casWx8EnT4heZW3EzqgKJtbNZWv6qvloYtNMhl7oNyF6kc9D28+CA04Cz8tWDer7Ly3kEYoJx4SPoT8xbRbfYtvmH3jHc1jAwxzOS2tdjRHpj/TFFbAZ56+iq9bu5nx7G7ed07LWiQdlyxcI7wRydbW1r9gF/wOlaPpiNut0Fqag== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) by MW4PR12MB7215.namprd12.prod.outlook.com (2603:10b6:303:228::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Wed, 17 May 2023 00:35:30 +0000 Received: from MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::94b9:a372:438d:94a2]) by MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::94b9:a372:438d:94a2%7]) with mapi id 15.20.6387.030; Wed, 17 May 2023 00:35:30 +0000 From: Jason Gunthorpe To: Christophe Leroy , iommu@lists.linux.dev, Joerg Roedel , linuxppc-dev@lists.ozlabs.org, Michael Ellerman , Nicholas Piggin , Robin Murphy , Will Deacon Subject: [PATCH v2 1/3] iommu/fsl: Always allocate a group for non-pci devices Date: Tue, 16 May 2023 21:35:26 -0300 Message-Id: <1-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.com> In-Reply-To: <0-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.com> References: X-ClientProxiedBy: BL1P221CA0021.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::17) To MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN0PR12MB5859:EE_|MW4PR12MB7215:EE_ X-MS-Office365-Filtering-Correlation-Id: 3992a9b1-a62c-487b-24c0-08db566e9db8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ujcEfo/9PxwxMh43eOIDVYsRkYmbHnf6Mj1osNXb7xFSkuyvwLlKtFtnnjuIF3ufRsvSMl/j4OmBCBhHYOMlv2ECw0oK7oUntFx/gdpY6T7ToU5byo+SE+co7FR7mEhhyiam7S2BIaRFa5oarrt9s5giV7oPTRjVnYFvn06vUbgbLp1zGSkSbeg7ICUt48JsI40r/RieZk2owLMGipKwhVyxkzmCHDpHeg2lWe4EnJZjrtffD6sboqxNFCgLAKDg1530eoQsATNYuJ/sCo99besbXkynoj45D3pzP/xA/07U21+EE0hfVDl+oEGZdj1x3tc7cmW9FsFxXOnZiVEmtXB2SDaWLOjdpFWs98nq0XhW3H1uanLqNqtcSq+qLfvOCK+TL9dcLulPQ9kbityLl3IEtiKXsb+3yVzyaZ+rfceRlBBTLvxABStigntoij7ubMBmuB4hiTcoWWHk4l69SQNPaL9H/fiOsDlw59HK6KX7qN60DD+K2NxZcr77Y8p0AOPi8Ai2RalAXhB3vYpLb0JsnFkXgufF9tqWTR6/407mM0aluiBqfXs31T7y1RfLaq6ECGX93J49gVCUliSm4sbSlftrIABbxPxoT45oLrQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR12MB5859.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(366004)(136003)(396003)(346002)(376002)(451199021)(6486002)(2616005)(36756003)(83380400001)(6512007)(38100700002)(26005)(6506007)(186003)(86362001)(110136005)(4744005)(2906002)(41300700001)(8676002)(5660300002)(316002)(8936002)(4326008)(66556008)(66476007)(66946007)(478600001)(6666004)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iJ6HtaUsHEpAZ0YygApZwssUnj+bbslDH3mXE8hSsXiqx4QKMxJNqnUjSH14c5EG4e/YVHkcDSbW/EFL/N3bYXMdgAANuylG4UTatphP3hWTcdmB9Uv4sQ0TlUkCBmxVvQ0jQzKxxr+HE/FSugsvz+YJ/n9EwKyT6QMua264pQz4wh8HyE0fBBaWgtdITD1OX9mCFhsZ8hwSlwRQAHyRuPMVs50yK+55svWLRjFjBzQtlOnBF2CJ0misR+dW1ctuAJvm6hzTvOnLP3j5rqQk9/cZCJYlxzt/j/pPVJkp4Hvoufoar5/rWQ48qK2F/Y27qvnBiez2Nobfc0GuQEWTi90AH/p4l/9pGAWh8ssOnf5yMgOpRKnPbenbA2ZcGYjxvX4qSX1RiwPsAiCwU3MLoYZRNazTTIVMpX4cMyHmmzU30E7OZabjme27JELR+V05a90P2pQc68OhZHaFGl/B6KraGCsQ0Gstgltr6rNA1DD4KCN14HHSwAy5ci9JFJUK/8LjPD3fY1pFVubv+Dhres4qTGPw4OLT+qYxaGvCC9CeEnFe+gfplmN0hq/a/3nBorwPIv+89a6VIG9YHbBe2w8Qq1MeGqHhN1w0YKzRgXNW8WqMk3skZDqDrJ81uboEbBbCBX+TvsAeX4fLdn8ta1YSS1SyZSyE9FurtreSgxv3pK/l28Nf2SPodKLGxO7XWEHLVNGHdeDDz5IqAyCO5hY03SKnokByhX1deBIdBEjm/s7XK9xWkwA23ME+PYOUrVnKfTs2elro52PB+/E3RjQPBcB3H7e+lcyv1gZf6nbDDS+/8EecNSFXDf7A4QCTZhsMQUk/j3YLnAbJ9ElO8bAZQqIo4sFBcfHtAntYj5BON/7pRr8omTyU2lhjEzs507x2QCV6dXHjoFiMK8gifZ733kz9adEWXmyJHgh16gO0Mxz70mAksFaDfhC/DiNPiFTidW/tEeOGJScYehkqZ7XTgWovmlEsYL0iypCcNMHgUW3d2u0fy4AzGp3LtShD1VNPDk/1Vn46V+4M2VxNAzszW2BsMvYWTRebGnrsKaoI5fiOK3mJW1GQEhSKMAGaYv+MCJI8v7JUE0N9+u7Jncs7419aoahPCCOhObqc3AZ4GVz+XBfAO/xk0jTtwzgvvaQNyBVl+JdyG9IfrtGQ6YBVc9e8T6sMHCeCtm/h7ku/avet15RB1reiqRZppqZ3VgDOkWmQYYUJnM9qqMDfuHeKGkkE163ww7F+lYUOykJ7Zb8+dg4bNVsb8wvL0zzG7/PiA2f6IgnVUufoej9skJi5iFkfHlWS9BzKq4hzbgt/bOj1XKN89FDPRJSd7yu3ppbt2PDNr4RhHXfOUPYl6Rg0vL6PsEg0BlV1ZyW24R1FpWa4Uzzo/oVodSmdez6Lfp+rIz97+SbRqd4Hau0RW3UnM7uN9qyNYecg2dmmv+yqNmHGipHIRdsH2uTbRzczhHCVMwSTtfWuIA7H4RRnf1fw2qZGyFUKOwgKproBkK2dbXWUUoLrvLHkGMNlhxYFonhtUf/4x2R/w6MQUP5ighKYTjAj6zN9R0h1Mie8yeVjmfLx/s/JJnZrq/NTbhn4 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3992a9b1-a62c-487b-24c0-08db566e9db8 X-MS-Exchange-CrossTenant-AuthSource: MN0PR12MB5859.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2023 00:35:29.7526 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DNUyNRQVqR9s4DxaHPNADv9tz1SXNhAn94qp9e5Z+Bkw5UNLXb44s2D/Qoi49gIG X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7215 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Yang Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" fsl_pamu_device_group() is only called if dev->iommu_group is NULL, so iommu_group_get() always returns NULL. Remove this test and just allocate a group. Call generic_device_group() for this like the other drivers. Signed-off-by: Jason Gunthorpe --- drivers/iommu/fsl_pamu_domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c index bce37229709965..cd0c60b402154f 100644 --- a/drivers/iommu/fsl_pamu_domain.c +++ b/drivers/iommu/fsl_pamu_domain.c @@ -437,7 +437,7 @@ static struct iommu_group *fsl_pamu_device_group(struct device *dev) if (dev_is_pci(dev)) group = get_pci_device_group(to_pci_dev(dev)); else if (of_get_property(dev->of_node, "fsl,liodn", &len)) - group = get_device_iommu_group(dev); + return generic_device_group(dev); return group; } From patchwork Wed May 17 00:35:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 1782389 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=ImAs/6j+; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QLZ2S4tc2z20KF for ; Wed, 17 May 2023 10:37:52 +1000 (AEST) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4QLZ2S0m6Kz3fPS for ; Wed, 17 May 2023 10:37:52 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=ImAs/6j+; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com (client-ip=2a01:111:f400:7eb2::611; helo=nam02-bn1-obe.outbound.protection.outlook.com; envelope-from=jgg@nvidia.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=ImAs/6j+; dkim-atps=neutral Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on20611.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eb2::611]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4QLZ0G1lWHz2yNy for ; Wed, 17 May 2023 10:35:58 +1000 (AEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ULA3H57rhMJ6XxHRB1YNZek9WBM5kQ8ArJfO7X6/RZ3lhijGChLwpy5KMkQi0XC7PSBIM4Qxb4mX01zmfapnQ5gzNxNnxHzYiX9gIrr7JLlNeGDY3IQDYEsrPjI6/LXrqCNRYDzIAxcvZMmDcfHvmotXxZUfG1JqZHK06hRBE3Fvls5ZXnN0pfTw9mx4a1WxCQeZ6DgDSxY+hpTR/DIVukFnAanVS2azgLBfDuJ03Ys09xJe6fzRa3PKio46AduLFMK8FDwHvocbegdkP9MCTX9Un/TdVY47Zfc39SroEshbQ3UQnZYpa0nR46YbdoO/aL7jMFZiXbdkvIHWd2ngLg== 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=1grXNH2WTo6svhBZub7+HJWR0HFa5jycrBbUwxbbwXg=; b=C07M0fISYWkKLGmrtarL17MS9VVDYIMwUYRGtJzdq/yl+Q9XAui64DVSaNhKCW1pUn8SITk8FQjDlVu380W0m/G5sbovAvwE+WyE5xFfbpv1iJFYD//juTjNcHIn1wC9K5qIC8xyy4Wr0kqi92oh7nCo2pnjuILFtDSWQLJWfaCA6QRy//B/XuhXIvNrbv2jG5eFzdTsks6RWyIhnvA7a2vU0KhBE/uP8bgMbjReukrX87xlaX76v+yE8a7Gy+oXX4hAi01ZlMS6C46Mwnq0ohG9uU/ZPtgjfO7kwJW0Hvau8tHLQumEsfkPd3WnChz+0gQBJDP7jy8d2XIN8ZY0wQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1grXNH2WTo6svhBZub7+HJWR0HFa5jycrBbUwxbbwXg=; b=ImAs/6j+oc8DraypW8TXLstEDhGH+IGVnYGBZdGk0CNoH/zlSBiu/00Jc1XWLbb8ZY+MKL7e4vgzsqbJxOIuhExd/Fp22SNPUWEJDHft38fj2+HF+srE1Obba0fTtWqwAxWajIq2B/HkKLjrFiqbDxKz243NS74xY72VfoAOuWn7h2YPS6T9sdRcB0Ww8RO9nUWj/wCFnE9EvWZopfNg6B70I5eohOWK7yXVeNu3m0W1xatw9SPzLKvXRXK+bnRqQSCqOku32rxWStYL6Hfs7KPVZy5nAbbdLLk8g1+lYJ1okbOi2M98TljA9K7olSJU2aVWg4kXUOKc3mgfzpcGBg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) by MW4PR12MB7215.namprd12.prod.outlook.com (2603:10b6:303:228::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Wed, 17 May 2023 00:35:30 +0000 Received: from MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::94b9:a372:438d:94a2]) by MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::94b9:a372:438d:94a2%7]) with mapi id 15.20.6387.030; Wed, 17 May 2023 00:35:30 +0000 From: Jason Gunthorpe To: Christophe Leroy , iommu@lists.linux.dev, Joerg Roedel , linuxppc-dev@lists.ozlabs.org, Michael Ellerman , Nicholas Piggin , Robin Murphy , Will Deacon Subject: [PATCH v2 2/3] iommu/fsl: Move ENODEV to fsl_pamu_probe_device() Date: Tue, 16 May 2023 21:35:27 -0300 Message-Id: <2-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.com> In-Reply-To: <0-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.com> References: X-ClientProxiedBy: BL1P221CA0006.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::22) To MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN0PR12MB5859:EE_|MW4PR12MB7215:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ead6584-1a8d-4544-e635-08db566e9ddb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UMLpLVlTkxvuaNvatwcnx3i59g7JzPESYE4nbYwlw+jU2XDVKgtlmpnF6YQ+c03sfpCp4Cx/vSesSUxqCX4xjdXeYrRs1Pia0pgiKJTtmjWhiNqsyxYlRZdV6KlEJuchwc4atC/5YEXVVLi7Q7Dw+v/RdcAPc7GCX09nR9Uzd6iUCThjJz4ax4xie6EcCN8+C/F9Bwk5dMv/uTwHOoci+8kBO98Yr03+C5/lU6nuq0TSlVROr1jYk+8FUSa6s+n7zFcYVyJd/9ypVqnxFx+q1GwzYz4UHDcGMF1ehcgrO+R0c1LHaNZMqYxB4sSyEfa8JvSGabnGTIJmz+oK4AO71n6EErBSPq2EDqY/c1Bd6sLFPPXD04Re03RKKh7BJwtqSqf7raO7CM3CPZeqxbEXymDCZAGjzdsuXzt7IKtsvBRStLs4UP3/mXAA6J6stZgcPYNVVziNRijkrrpCjCAk2fJwofvu6gV0BtEkIKQuH7R2UzYtMC23oAE998vvb9dVHL8fuck4k5d54jmPxNexnrGcxr0qyX74NnMkPwfL85ZHBcOx2yposSqDOOaXuiTk3XSufF1B1KooSGgr8zN5AN1RhJRpzeeeODmyHbuNH4Y= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR12MB5859.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(366004)(136003)(396003)(346002)(376002)(451199021)(6486002)(2616005)(36756003)(83380400001)(6512007)(38100700002)(26005)(6506007)(186003)(86362001)(110136005)(2906002)(41300700001)(8676002)(5660300002)(316002)(8936002)(4326008)(66556008)(66476007)(66946007)(478600001)(6666004)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3Nik1RYOQ3udbKC/a5i6CAXAZY/+rC/9qG5ZPzeX41sY+7k69As/FwriqdwQStBaRPbMDkTKChzga1PCSznkLZgzMeXAIiD1vTw+03GIZe/AOhS1iBivoHv06GmzMONs2JXVSXlEyu3O1ePyQVUJcJjOwFGQo0WIErm6zfXRSkD3r9HNw0y/suaaehKIroFMY0BCnG5UbF7o4appg3rgeTzDst/vwPN2bb8nEcNWO/gZHH8JqcyMwlgexFUtUu6Grfkkz1AZDhbLtKm9PEUxgftvhddblhOkCPB9SrSKv25RJGn4tqF5/44m0B08vck8pyZF1tYSzAwonwTWgEDSbxkGMU7YL2LzD08uNGWmMQGSwKcpYCQMvdwQwENFZe2otkuIYBq7vf0f4+gkpZX0SNn3L+p18P+o6nEwKyKrv76J8NSj0j2AXNM0esGx2AKfNI0NdTq4yk6ZUb2fFh6PJ9wzHqcl3I15V4qYwtTVhuvOrezeHOD2IIHLv3p+2Sh6EuYIxYeYv5FVym1DvfTCOx8/I+biBg7XDUm12Nc4uFgaDlzU+GzMetZTxpCu949ReAlB9g45N3QyHhWE7r0aC14stUqKHNk1vKfyIdGPgqUaFDELWDe0bk3RNsaAbfqVpu23vaJUCQTAsez4/PcMbAPwLTnI4Eq07JRL1k4U0h4FhVN8nORsmvXd5mJnsTjMDWZKSBxoo/eiKsBHqfSXiBwk8c90Axi4TLL/ThlxCDLTlJJdSnWyMHur3+IHjDo8lQg3y0cQ1Thlm2jO1FcMQKw9tu7Zn4Om4ROB4fonuFEmv3XkQggnlQXfjIfg5K0v/2OXC2mqKOFS2SIQQVhjqG4w/ltzjJbvsrsfOyUnCHEuldMFUN6X1NWhVk4WKZVcOP3FgyMumcI4XW738E0PIrwfEKUFEUQxEItWVCa2Vr5ey3Iin977ifKLgHeI+fIcTcHLLPkTrVRdaa8yr5pQGrWvU2lbyQn8JSe3oNXryW4o9zZBztk9PceXiWIyKUWRYfmhxsV8trmsRrdYVX4QcBi8CcE7JIWmM/BATYSwh7zGUV0g4fluoyjyW8a9BgHaoYb0q2T2ltwknxvooCv0FrdTtfsvzW7ZCGorVs4+uEih7gS+gKIucJkrqrVwEfJHZ3E14wy6ndW6bubtNdFz025mqRUBUcsGBc4oPnKVetexb9gtYCzSPAZ47gKVSg3N0t7OmjWugMSkTRf0WgJFayKaPIL88xUHRdiIEhG/CfT2K8GcddvD1zH0cxpzqbf9GV7ra3oKo27jGaMI7ktP7dcjCzX3bcUBhgsMQh+auS3frj65uMqrIe7kyUcVMarrAyMOUpjHGOuDviRwaV8S6bNEKa/lH3/C/DwF7jcwsVqryJOMxRPsCdw+6wnbyXSmr3maWnBmStJVKW2HMiok8e6GnaJbCZ5UXWO7zxhJxtWY0okclIqreROuRePXyVY1oVCWGjsIw8Bl8PJWclsKMlpv1J8xRbcKXReE2wWRQugVN4dLNdurPZyZKQ0pJqxv0EHm0IP87C60BZXHu6Z9+TGMYzhrgFlsaancgSLGl51L94MHuTOC2gf9ZiMpj1c7 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ead6584-1a8d-4544-e635-08db566e9ddb X-MS-Exchange-CrossTenant-AuthSource: MN0PR12MB5859.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2023 00:35:29.9491 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: quwaq1n7Do6Wzki1KEYs1BzmvuYKx2NjpKlDcWOwqkc7ZDfuHG5DfDBVjoKl3eaw X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7215 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Yang Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" The expectation is for the probe op to return ENODEV if the iommu is not able to support the device. Move the check for fsl,liodn to fsl_pamu_probe_device() simplify fsl_pamu_device_group() Signed-off-by: Jason Gunthorpe --- drivers/iommu/fsl_pamu_domain.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c index cd0c60b402154f..d0683daa900fa5 100644 --- a/drivers/iommu/fsl_pamu_domain.c +++ b/drivers/iommu/fsl_pamu_domain.c @@ -427,23 +427,28 @@ static struct iommu_group *get_pci_device_group(struct pci_dev *pdev) static struct iommu_group *fsl_pamu_device_group(struct device *dev) { - struct iommu_group *group = ERR_PTR(-ENODEV); - int len; - /* * For platform devices we allocate a separate group for * each of the devices. */ - if (dev_is_pci(dev)) - group = get_pci_device_group(to_pci_dev(dev)); - else if (of_get_property(dev->of_node, "fsl,liodn", &len)) + if (!dev_is_pci(dev)) return generic_device_group(dev); - return group; + return get_pci_device_group(to_pci_dev(dev)); } static struct iommu_device *fsl_pamu_probe_device(struct device *dev) { + int len; + + /* + * uboot must fill the fsl,liodn for platform devices to be supported by + * the iommu. + */ + if (!dev_is_pci(dev) && + !of_get_property(dev->of_node, "fsl,liodn", &len)) + return ERR_PTR(-ENODEV); + return &pamu_iommu; } From patchwork Wed May 17 00:35:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 1782390 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=2404:9400:2:0:216:3eff:fee1:b9f1; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=D9kCNW5c; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2404:9400:2:0:216:3eff:fee1:b9f1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QLZ3N0Qbbz20KF for ; Wed, 17 May 2023 10:38:40 +1000 (AEST) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4QLZ3M6flgz3fPN for ; Wed, 17 May 2023 10:38:39 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=D9kCNW5c; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com (client-ip=2a01:111:f400:7eb2::611; helo=nam02-bn1-obe.outbound.protection.outlook.com; envelope-from=jgg@nvidia.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=D9kCNW5c; dkim-atps=neutral Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on20611.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eb2::611]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4QLZ0G6GMjz2yNy for ; Wed, 17 May 2023 10:35:58 +1000 (AEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jMY4HgVn6BXNzOHYlo5AXqwBaFT4yO4C84Z2H+kqbR4ZN2HCJK/P3qxDs3fpR2mETx9PFOCi0tgbj/F7fonnVUKM8aeT6xRs/mczLaK4tDcAt/phjHGEZaVT19RqUoGSVejO2xXjvpA0JZ257OczWbJUcpXQkGIAgdj/uMl+Ak8AtCAPolboWYiFZ+h6laoklAKHzmSiRhIdXQR9yoCJShYkDQKWhCYFD7OryvqFw48r0Bms6pFIcxglU6FfaPBQDWC7sx6UDa0CKnXdVrqp/Gzyq1yRCJfV5P1WRrvhhNhiYo74vDdZ9Zw86IGnbc59LY098c2kZlKRDC8bgfTveQ== 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=HbLhhdrNfr6pZjCX/iJo2o7IofwaX2KCzf1LRysWDYc=; b=fDWmILLQ7MrEMLA8e2hOgKlN0IklTyfAydqisZuPbFC3R9Em6+7fbF5Azj3II+C/hysfsj6t7KFPfboYEn2nT4ei7tWmSC2ML/bQ7ospsMzlSPVasqghUiYni7bXuX7ppPfSRFh04376CyHRDCYospCp8Di2OvewljPeOJ6LYAp7vmQEPNSUjxmxADaWpS2h6lCUeByn4evStTb8wyBDd3nt1QNdUSMD0CZYwsP6FbWPSd6RLoF8hzO5mpE8i+KHv0qk6g1tX3qL0/iWkydoyk2/GxOW+/w3wBiYjdAV9Gf+A1wKR8bJBEu84yYaqWgveenzdo1rH+bjnwHpxJ5Tcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HbLhhdrNfr6pZjCX/iJo2o7IofwaX2KCzf1LRysWDYc=; b=D9kCNW5czIJiE0NC6ivBbE3+O++2xmEn2DAPkWbi1F8VXcFvsur01+KnEEDsUu4SUHBOMA14FTAIHwfbJWCa2URyY63HbHfhsy1C5FrGUWeetOmmMyFLAG3FumfFZB5n5nXffF0ru3MjmkvAZZ4Kijdbgw9Lk7ntPtpBFFyT2bEQGW9FN8eLt6hUNe0yC8Hh36I/hZGZZB4MDqwHNwBWSWMFTrpNfn4LrwEvj8qBS+XEUZpaxMYD6dLnsi2tTrrUkcWajpoSB2fALTKcVFyR4HcHHluUWxVPA1Y7jPl5NDaG+QrwyF/rbLtCCQPQC01CHF2qGLYg4sVTrRwMniWM2A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) by MW4PR12MB7215.namprd12.prod.outlook.com (2603:10b6:303:228::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Wed, 17 May 2023 00:35:31 +0000 Received: from MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::94b9:a372:438d:94a2]) by MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::94b9:a372:438d:94a2%7]) with mapi id 15.20.6387.030; Wed, 17 May 2023 00:35:31 +0000 From: Jason Gunthorpe To: Christophe Leroy , iommu@lists.linux.dev, Joerg Roedel , linuxppc-dev@lists.ozlabs.org, Michael Ellerman , Nicholas Piggin , Robin Murphy , Will Deacon Subject: [PATCH v2 3/3] iommu/fsl: Use driver_managed_dma to allow VFIO to work Date: Tue, 16 May 2023 21:35:28 -0300 Message-Id: <3-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.com> In-Reply-To: <0-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.com> References: X-ClientProxiedBy: MN2PR05CA0058.namprd05.prod.outlook.com (2603:10b6:208:236::27) To MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN0PR12MB5859:EE_|MW4PR12MB7215:EE_ X-MS-Office365-Filtering-Correlation-Id: c3127cf9-8a55-486d-8101-08db566e9df8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ijaO6dQVnq98rifcPKnkHRqKvSWV3qArg1S34mvYeeB30r0VEyAUyJTkz7jFIy74ZjAlRgmio0xc9reBjJ6LEToNrHBHx4gza6tgyz4bom7dcqOVVgRR+wuXgoDWUJQiBEiPIx17czeWVW1GCEZx+CPzdJgrlb3ykL6PluNMKMarNRMPsDtmgLMh5a+vxilo/70gxixSLtAf03mwrOmQ46WhfWGkBhNo/+iGnUyoLLaVIK7e7lJ5rDOhe1y1NVg35rmY/yytQdy9L8ZzAKgPsssqXQJxVAti6epKnbR9jbpNaefIFr3s8OssbXYl0wRY56Zzr/TJ82PpeaZmKEf+p712QKFdvZtwrBslUnd9JEtdAcdx90XQOw4yFV5Ke5fZje9DqjZHpZeMFQIg1TwKqzpV5vmIjLx2F9HSo3GAPEXMxP+iFjtK3S3wApyK+6B7UeVjlqchkVzr6VahqOupM6b4b6PwBNYfKAOru+jQpLLCfy3ezEEanMDyxRU+3I3iXILoGPNQBsuhucEOFY645/DNZ+8gczBh12oNqcqnxmi5i4T7hRgqv7inkAbRnfX7kd2d7TaAnu3v067yuz9OTCmzXirpuvCRe3SKQETW7oJ7xceNtDEwyqrgfjl606UjYndGRaFtgJVd1oIbZnPTyg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR12MB5859.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(366004)(136003)(396003)(346002)(376002)(451199021)(6486002)(966005)(2616005)(36756003)(83380400001)(6512007)(38100700002)(26005)(6506007)(186003)(86362001)(110136005)(2906002)(41300700001)(8676002)(5660300002)(316002)(8936002)(4326008)(66556008)(66476007)(66946007)(478600001)(6666004)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MjovoV9/FSCPgbEo6bfM8OxJK/eirBQKLTB81BC80DHaEDZkbMzB78nl4VTRXsqLQ040BzGYqDr2KoAGBprd9PDF7Jvr3FM5ktghQIsvXvaEY4LM02MPyuaCtD1XPKo7ee9mBqWXrjdXEhrLLDksmWG1DOwx//NJ4s8pLSPykYPzTmDpUDuyh50XyQjdbmCNPySI4iZqv3D7KALA0Ng9mvfyPV1UveZcsoyVFgP+QLhrdh6VM+GavCKHyh8lNFfV4m/DOM5rg7qlnP8WlGqJE7BEZdWn3QffcfmWTFN8qcIcOABYKx/G5ZEY3XEy1qYbFPUm2BUcXQHcUKvlGa07CBCSOB5SjFNfQwp/np6rAbnIE9eTtsfrvtqebEhWLZAJHJqhRpQevktMcb/i4nJB9dLU7vreIrNTCMBRm2Qrx1cX3V2W7nD/7XFnnBrG4G1o6XlzglYt4Zhosqi0YuQTDObGpjn/ANiODNvRwjsXXxsI3TV9bFh0V/+0k84/6hjWL8e6ZIbwyC4jSysbG7Ma/Dh3w/lUT4T0Z9Mzu2hm8LCvt3VUKulDvbfOxiCxbE3lCudp6cGqKWWiKOYlnGJfe1NCX3MXaKjiqA2qaEyRWkxB5+ckF0HiJuKl42j0vdANydvkhNDAczrT7d6Fvhji87Z5v7ksvADSJdISuKryR6JPrxER9uxD2F6AiuCKb3nRludNM4ipUtLPt2ympYRsflPFIBFhn5ssZ8ED079z5gmn2BYiJcDhWLsNQbNDObHZby0gtin9NtlMM6zfqJrvq3x99bLpLmuPiIGoQ8ZNMDCaf3rp57qTzWz/VDUc+6o+nyS9dvzrHCONxy5LngjCN5BnHKDW6mNDTTvZDwrtIqXzJq2W4+UmuwSKVBjV38C3v/PNjv1B3tL+hIhuC692GeJZCg9bSZsff0KKiA/bec246M0vc03z+yQrre3kmW+ILBq3Xfe3JClaIMouZzaYwGNK6pkjkVgZKHP8cwrRiKT88EiVIrnZ2+5xUVv7IpXmmGpbChtbV8WL1Dl28o4oQeM3dGmrqEkfoyTU3ACwPqXPGAzbVSVi3P/xPsHLx0iNNHwGf/XkpPIxSyooIdg1PNOTjXRsYqN+zcIYn1wa8M8PSiUImJhBDfwCHLrBkScvmF3rsfWwRCXhU76lEwRIdVfJz9F85DtZLfhCwrjdkJrHjAVG3rczdYJKYpibqdXjUt09TVUhrpfz1GjuB1x2c9Gu+1ILQYGkytHjPJa/+kLuFFdCZkM82xS8cvzX9VVUeNosT5IesyBWF2TUVC8t77LA9qPRlFSv1rJdq0Yze62Yya+d0zEDf6c6540g3o8B8SB666tUpdftsysYDn4B2LN8PbSz+6w0hB406tbZVewNLBIhRMwzZlBRP1oGSHgSnBjNFncaYIWCoy3jiSatcFJQCVBkufNWve2mSMyfO8Oz45MocMSprT9KDHx6I/VKly0RwcpI/QW0/MQi1ueIzJzf+2KJe0Sp1T5biQcWNh3OOipmRPcZta5/hQChC+Rmpy5KgggQSILdEyaBMk11PPEfRxWLhXQTCwrokbcMFyRHoPc3vuCgx0CuQNS99ORY X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3127cf9-8a55-486d-8101-08db566e9df8 X-MS-Exchange-CrossTenant-AuthSource: MN0PR12MB5859.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2023 00:35:30.1343 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WrJdGDehUJDMX01XcOS96+lfCDuPut8IGgBByOfPhzeDf7U1QLmZNslbthztc49z X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7215 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Yang Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" The FSL driver is mangling the iommu_groups to not have a group for its PCI bridge/controller (eg the thing passed to fsl_add_bridge()). Robin says this is so FSL could work with VFIO which would be blocked by having a probed driver on the platform_device in the same group. This is supported by comments from FSL: https://lore.kernel.org/all/C5ECD7A89D1DC44195F34B25E172658D459471@039-SN2MPN1-013.039d.mgd.msft.net .. PCIe devices share the same device group as the PCI controller. This becomes a problem while assigning the devices to the guest, as you are required to unbind all the PCIe devices including the controller from the host. PCIe controller can't be unbound from the host, so we simply delete the controller iommu_group. However, today, we use driver_managed_dma to allow PCI infrastructure devices that are 'security safe' to co-exist in groups and still allow VFIO to work. Set this flag for the fsl_pci_driver. Change fsl_pamu_device_group() so that it no longer removes the controller from any groups. For check_pci_ctl_endpt_part() mode this creates an extra group that contains only the controller. Otherwise force the controller's single group to be the group of all the PCI devices on the controller's hose. VFIO continues to work because of driver_managed_dma. Remove the iommu_group_remove_device() calls from fsl_pamu and lightly restructure its fsl_pamu_device_group() function. Signed-off-by: Jason Gunthorpe --- arch/powerpc/sysdev/fsl_pci.c | 1 + drivers/iommu/fsl_pamu_domain.c | 108 ++++++++------------------------ 2 files changed, 26 insertions(+), 83 deletions(-) diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index b7232c46b24481..6daf620b63a4d5 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -1353,6 +1353,7 @@ static struct platform_driver fsl_pci_driver = { .of_match_table = pci_ids, }, .probe = fsl_pci_probe, + .driver_managed_dma = true, }; static int __init fsl_pci_init(void) diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c index d0683daa900fa5..4ac0e247ec2b51 100644 --- a/drivers/iommu/fsl_pamu_domain.c +++ b/drivers/iommu/fsl_pamu_domain.c @@ -334,17 +334,6 @@ int fsl_pamu_configure_l1_stash(struct iommu_domain *domain, u32 cpu) return ret; } -static struct iommu_group *get_device_iommu_group(struct device *dev) -{ - struct iommu_group *group; - - group = iommu_group_get(dev); - if (!group) - group = iommu_group_alloc(); - - return group; -} - static bool check_pci_ctl_endpt_part(struct pci_controller *pci_ctl) { u32 version; @@ -356,85 +345,38 @@ static bool check_pci_ctl_endpt_part(struct pci_controller *pci_ctl) return version >= 0x204; } -/* Get iommu group information from peer devices or devices on the parent bus */ -static struct iommu_group *get_shared_pci_device_group(struct pci_dev *pdev) -{ - struct pci_dev *tmp; - struct iommu_group *group; - struct pci_bus *bus = pdev->bus; - - /* - * Traverese the pci bus device list to get - * the shared iommu group. - */ - while (bus) { - list_for_each_entry(tmp, &bus->devices, bus_list) { - if (tmp == pdev) - continue; - group = iommu_group_get(&tmp->dev); - if (group) - return group; - } - - bus = bus->parent; - } - - return NULL; -} - -static struct iommu_group *get_pci_device_group(struct pci_dev *pdev) -{ - struct pci_controller *pci_ctl; - bool pci_endpt_partitioning; - struct iommu_group *group = NULL; - - pci_ctl = pci_bus_to_host(pdev->bus); - pci_endpt_partitioning = check_pci_ctl_endpt_part(pci_ctl); - /* We can partition PCIe devices so assign device group to the device */ - if (pci_endpt_partitioning) { - group = pci_device_group(&pdev->dev); - - /* - * PCIe controller is not a paritionable entity - * free the controller device iommu_group. - */ - if (pci_ctl->parent->iommu_group) - iommu_group_remove_device(pci_ctl->parent); - } else { - /* - * All devices connected to the controller will share the - * PCI controllers device group. If this is the first - * device to be probed for the pci controller, copy the - * device group information from the PCI controller device - * node and remove the PCI controller iommu group. - * For subsequent devices, the iommu group information can - * be obtained from sibling devices (i.e. from the bus_devices - * link list). - */ - if (pci_ctl->parent->iommu_group) { - group = get_device_iommu_group(pci_ctl->parent); - iommu_group_remove_device(pci_ctl->parent); - } else { - group = get_shared_pci_device_group(pdev); - } - } - - if (!group) - group = ERR_PTR(-ENODEV); - - return group; -} - static struct iommu_group *fsl_pamu_device_group(struct device *dev) { + struct iommu_group *group; + struct pci_dev *pdev; + /* - * For platform devices we allocate a separate group for - * each of the devices. + * For platform devices we allocate a separate group for each of the + * devices. */ if (!dev_is_pci(dev)) return generic_device_group(dev); - return get_pci_device_group(to_pci_dev(dev)); + /* + * We can partition PCIe devices so assign device group to the device + */ + pdev = to_pci_dev(dev); + if (check_pci_ctl_endpt_part(pci_bus_to_host(pdev->bus))) + return pci_device_group(&pdev->dev); + + /* + * All devices connected to the controller will share the same device + * group. + * + * Due to ordering between fsl_pamu_init() and fsl_pci_init() it is + * guaranteed that the pci_ctl->parent platform_device will have the + * iommu driver bound and will already have a group set. So we just + * re-use this group as the group for every device in the hose. + */ + group = iommu_group_get(pci_bus_to_host(pdev->bus)->parent); + if (WARN_ON(!group)) + return ERR_PTR(-EINVAL); + return group; } static struct iommu_device *fsl_pamu_probe_device(struct device *dev)