From patchwork Thu Jun 10 04:16:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Mhetre X-Patchwork-Id: 12311707 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0F44C48BE0 for ; Thu, 10 Jun 2021 04:19:28 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id B0CB36109E for ; Thu, 10 Jun 2021 04:19:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B0CB36109E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rByGLUoz5AeG+F+5aYa9YlUWQnu1W+4N9y8kfaEcJmw=; b=p/kHMSOdXaV/rr 4cQ1ku5zQeCLIGN6SBuFu1uEa1shAGh6hBnLtsr3yGCd/LtIgr5853dQ/D5x44Hix1BnteiUCrUK9 Ex8UqyHGfwWy4yudkWtS3MRhHiYvG0JnDUWviiBAsz9an53vuw0NrBElqU2lnDvq7Rm0+bgSd4LBm frj4XcwWbDyQXMG9Q8k5y8lf1bDvqLh6CEnmANSuNVv7z+8KBIsS+IXdRYjQk+gBKtxonYg7AHZiO pEaLzpFu3cw5gFzNPYPt40kEaNTs36J5uQvji55olC1rpgjLk78W8UyX5vDP/deTHIgePwhVb933j Hn9YSkayJpO3MRSBxjhg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrC8M-00Gmy8-N4; Thu, 10 Jun 2021 04:17:35 +0000 Received: from mail-co1nam11on2062.outbound.protection.outlook.com ([40.107.220.62] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrC8I-00Gmx3-8w for linux-arm-kernel@lists.infradead.org; Thu, 10 Jun 2021 04:17:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EcZOO6GuiphTrhWYOTv9r7IkEX37dhikqoXvKvMoeBYtZXcOh3tudTKSXPT3ghHzEKDMFXAteVStBpFiA7m4GKpWPKZ7yTELrZelWYopwgXG/E7yklsJrys6rfPf36zkOGZFsv9U8vBBJCpB+cJ0hcPItdzXd/6wTkpqwDGWQbAN6lT5OxGLYtzvD201BQsmSOsV0/Z7DXn4ouKAAUPT5b1tPbM8kPp/08GIsQC6qMPnehh/8hp6XDPVc1UiSe85uqgfvprD/l+Yp3vR1lU9CcX9evGef5n2XKcaZdG2R+CxVq+QVCGe4mIFCgFoN8oGGYuA1JpQ2IOgkHohNVVWTw== 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-SenderADCheck; bh=AAJyeRVqgL7ONMDAasXb4kStbGZl9qNmY9+wgLZLA3E=; b=QzGMDE7Pylsnl+m6ftvBAq6b2DDR7UxW1zTUTcVY6i6zVxfie+3UWvTzG8JHgp/3+Dn8ZodZbW8PdQSLwwoO5HQ+mHOECt8qPhPoVddW3ZuMytC0C0C0MWrxh0sk36GkBIk+4wi7yBWZMvZuUvFIOuwXk7cT1qEalxevAiY2Uw+5gCbnM6d0F9tucB6cKEmrGz0Ms/ntdHK+1r3pntfAOhUQV4GszvaSp10+DFaWUeK82yKECTtBTrX5AVWCFfPy/cV5kTm3nEV+mA2inWzePHOvXGvpjWxo6PQr2rtqicc/xq7m1aZb84HOPzz45yeTUtsUjqR11MLoQ3adIXhdnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.35) smtp.rcpttodomain=8bytes.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); 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=AAJyeRVqgL7ONMDAasXb4kStbGZl9qNmY9+wgLZLA3E=; b=iAzxqzwtsX/WcH4/OgGvbPgbQNZlcR0h5gjBU27sL+Dtc/Y28AvZgindonnyplEs0p/S+oehZqvNsazVZrttJ18tkBgKrfQQ6HSoZLJpzDIj2hZlzdTiehUAp1lApANscIc4kpfVkuCZY7W6dKQEdLNjFNC1hadm5EpR+pfVaMwzEDb4UhuxH2xzsYyIPuFYj8M8HazyqrHkypBzmXz6IgnXgyIa2XaukX+zg3Cu1UzK5gpKRC59tXsbX30xoIj4YQsF6CMdaJ/7EnAUT6hYCv+wfgFgFVQ/oUgTD92SzfUJVbB3IoiO0MveAi4chiQCnCUqzhuY7a/4+RfYfyW/9g== Received: from BN8PR04CA0048.namprd04.prod.outlook.com (2603:10b6:408:d4::22) by BN9PR12MB5116.namprd12.prod.outlook.com (2603:10b6:408:119::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20; Thu, 10 Jun 2021 04:17:23 +0000 Received: from BN8NAM11FT011.eop-nam11.prod.protection.outlook.com (2603:10b6:408:d4:cafe::b8) by BN8PR04CA0048.outlook.office365.com (2603:10b6:408:d4::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Thu, 10 Jun 2021 04:17:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.35) smtp.mailfrom=nvidia.com; 8bytes.org; dkim=none (message not signed) header.d=none;8bytes.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.35 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.35; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.35) by BN8NAM11FT011.mail.protection.outlook.com (10.13.176.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4219.21 via Frontend Transport; Thu, 10 Jun 2021 04:17:23 +0000 Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 10 Jun 2021 04:17:22 +0000 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 10 Jun 2021 04:17:22 +0000 Received: from amhetre.nvidia.com (172.20.187.5) by mail.nvidia.com (172.20.187.15) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 9 Jun 2021 21:17:19 -0700 From: Ashish Mhetre To: , , , , CC: , , Subject: [PATCH 1/2] iommu: Fix race condition during default domain allocation Date: Thu, 10 Jun 2021 09:46:53 +0530 Message-ID: <1623298614-31755-2-git-send-email-amhetre@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1623298614-31755-1-git-send-email-amhetre@nvidia.com> References: <1623298614-31755-1-git-send-email-amhetre@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0c7d48a7-13c9-4625-141c-08d92bc6a5ab X-MS-TrafficTypeDiagnostic: BN9PR12MB5116: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dPqjowtCTeWXsAiQ7vCo2heojgm0zEWaGfaAH92yVq8XBJ2xfAoxZaSl3zwgbBgjUWSD/pqyYd2UFjPvB/hCUnaMExNaej4ngkB3fA1hnA3nm82xVzInj5P9JvAYnuAZZyBO73HnCF+QMwIYZ6ZLlYybpT1idA9yYbe9Ao6cXbbW21KqtioA6p/Kd8FQ9fjFaI0J3+sZDtjm57sHTgPyDsNZ1I/qgwexEXopH1G2S5xcTHaG0ZQFETioqSTUYNzYxGtYTElupwtlvVqv9cQfEkgXNAb9GBK4nqxN6ztZxHVQEq/GmHBSV6WhF+Qyh1Oku9fvRiPaJol+y/d3kx3t4zObcWePk5uQnRtn6jyV7eTboGjHL1i8cAYDzSyTUDnzOiKscPCKCx4VCh1aIYueFgqPetEf0QCidnqq5yicVWFg1q5Y4gG485WlG7oVD4a38rWv7WulIVxSNFth6OSI/KwpB/yesWjwY5sWu+Py5fw/8CtzpMx8gj7a6Nw0wQW8i/abQ9bggcQc4oyyQlrahgY9SdIh2b95gnkPUPpc9UfZHNuFJQeVrUPTQw+DfITnsiCrvS8HIQZqsjDufF4hmrNz3gaFWtLlS0iG7KDMGNhM93gBEUtagdmsppEv8vx5n6xQiGD/HGvQ6yLNnRy/DYecbBt4JVzUe/Nafg2x7Fw= X-Forefront-Antispam-Report: CIP:216.228.112.35; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid04.nvidia.com; CAT:NONE; SFS:(4636009)(396003)(346002)(376002)(136003)(39860400002)(36840700001)(46966006)(82740400003)(7636003)(26005)(4326008)(6666004)(336012)(2616005)(8936002)(8676002)(36756003)(70586007)(83380400001)(70206006)(426003)(36860700001)(47076005)(86362001)(186003)(82310400003)(5660300002)(36906005)(2906002)(7696005)(478600001)(54906003)(356005)(316002)(6636002)(110136005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2021 04:17:23.0868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c7d48a7-13c9-4625-141c-08d92bc6a5ab X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.35]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT011.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5116 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210609_211730_342139_F7FE09B1 X-CRM114-Status: UNSURE ( 9.00 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Domain is getting created more than once during asynchronous multiple display heads(devices) probe. All the display heads share same SID and are expected to be in same domain. As iommu_alloc_default_domain() call is not protected, the group->default_domain and group->domain are ending up with different domains and leading to subsequent IOMMU faults. Fix this by protecting iommu_alloc_default_domain() call with group->mutex. Signed-off-by: Ashish Mhetre --- drivers/iommu/iommu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 808ab70..2700500 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -273,7 +273,9 @@ int iommu_probe_device(struct device *dev) * support default domains, so the return value is not yet * checked. */ + mutex_lock(&group->mutex); iommu_alloc_default_domain(group, dev); + mutex_unlock(&group->mutex); if (group->default_domain) { ret = __iommu_attach_device(group->default_domain, dev); From patchwork Thu Jun 10 04:16:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Mhetre X-Patchwork-Id: 12311709 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16FD1C47094 for ; Thu, 10 Jun 2021 04:19:46 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id D0C2361019 for ; Thu, 10 Jun 2021 04:19:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0C2361019 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zpiTE8LNRwFvjOsGAn8KJCDsgPWIkjkHfEgSuv8z9Ww=; b=gwlVqcZeFjXvFH BI5L47lnWTiYe1lu+Ym/7XwaK/dFGEvHugpV8vz192dueHi1sSgSSBnsaGI8DWDTC0WyFgj+4Ixhs jC1Gl9G3vrhzrxxI7S532AVL/Aie1qgDqqISnvUuUTRfLLJw7McnoF9gbvuM/PaSQXubRWwfu3zu7 L0gtSXD0zjBPiA0m6wLlF8/asr8HOZA46lgl+LwXxAEBOkOheEZCsr0PUpvOwLLnAEGXnIzXUMVo+ EuavhzFEcor1UI97jQTOUVfD/li1supFkX4q0Z0RMHboZZ7KuDfDBih9c/GlkcCo9BU5F/lfc3Iq9 sD1flaKlwi+q5IzN2SMg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrC8h-00Gn1q-Oq; Thu, 10 Jun 2021 04:17:56 +0000 Received: from mail-mw2nam12on2089.outbound.protection.outlook.com ([40.107.244.89] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrC8c-00Gn0U-43 for linux-arm-kernel@lists.infradead.org; Thu, 10 Jun 2021 04:17:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R7MyKdCxEvY1yaeCMR+a0s52J8k0EVIqfJfAbnx0fPrq+JqDH9eS8Bufv5DQFe0kyVz9mYuet89GiArjIqpTMiVopC4fK2k7yRG4quqr05bmNz9s6KICVVOiXbS3kq5kVZwUL/1OHsxMnS7Is+29pWNikhsjaOlnw/L5Enhf5CnE60DktBN1v1yQFiV6rSg0GeMuT88Z1iLp6TUX39eUOhHNo5l8prTyhazcr0XCLmjUx3pDQUFxMfFZ+SXEHlDHBk4s3lDYlFi8BT2xM90X3+qBox0JG4Tkn+EzTTkNWKkt5WMtzX3gmNxWfYZ1TDZKimgrgHRq9eZBxnr3KM3ffQ== 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-SenderADCheck; bh=0b1sK68wbBCTbQjyOI2dbd+1bwA3LBeLoZHiGhjP2Rs=; b=iBmFW4eh7FOphqmePGOzuUWO2jCw8QVd6S+hxACo3HM+xx2F1qPVK5YdZBv4d90kwUUcaUFDeSDRbXYSBUHHIcapHbhUX4i97OmcU/GzLA1BGsIdRVq9+RdkEto11fjb7itVjAolGNWNX/xsAUT6n6Hgc83wKKY47YTBfq5x/p6A/uZ7VAfyPO3iy57qz3+7GBPm10GYJ+lPlOdxBQ5T8l0nozUpUXVM0ym7ggOtbybACKmOSuUFZ3zzb3VT6kBJ2rlkrhhnFCkp6DwfJYpqyUJ2ekLBtxcAcQLGTu3ZTtfgIbFL9hvwVW5osS3/qec2AAg2/ATSGnHQg/NAFQUV0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=lists.linux-foundation.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); 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=0b1sK68wbBCTbQjyOI2dbd+1bwA3LBeLoZHiGhjP2Rs=; b=BfMxMtRYovkuk5W7eBHekwfKgHaa8Ew6aDH+MVYg5OeJGGI0KFPak0lh1nAyxh34hYW647WGjGeLvoG9HqliS5d3803Tcc3/2HjJi0xTtpC0J3JndrqxpcLKYfKOfqX53TEEKg5oeQd6PI2pe2buitcGYZperIGmiaHSWT6ZSYB2vvjn3Wn27sBOcSRyea0NDUQwlcOkCkHz7GXQrhAUgqQY9KaV2S/qhtgsknQQARV4v5LRgqBO6zB4NCY1L9LZksmZ/q+mdmzlXykUwew7D4cKXRtgMzF/dexoJxMJ4jyL0gdlYphyrygmIZMNXHzE99JdBbjuQFuyCZtP+GEAlA== Received: from DM5PR13CA0031.namprd13.prod.outlook.com (2603:10b6:3:7b::17) by DM4PR12MB5039.namprd12.prod.outlook.com (2603:10b6:5:38a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.23; Thu, 10 Jun 2021 04:17:40 +0000 Received: from DM6NAM11FT011.eop-nam11.prod.protection.outlook.com (2603:10b6:3:7b:cafe::4d) by DM5PR13CA0031.outlook.office365.com (2603:10b6:3:7b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.9 via Frontend Transport; Thu, 10 Jun 2021 04:17:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; lists.linux-foundation.org; dkim=none (message not signed) header.d=none;lists.linux-foundation.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by DM6NAM11FT011.mail.protection.outlook.com (10.13.172.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4219.21 via Frontend Transport; Thu, 10 Jun 2021 04:17:39 +0000 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 10 Jun 2021 04:17:39 +0000 Received: from amhetre.nvidia.com (172.20.187.5) by mail.nvidia.com (172.20.187.15) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 9 Jun 2021 21:17:36 -0700 From: Ashish Mhetre To: , , , , CC: , , Subject: [PATCH 2/2] iommu/arm-smmu: Fix race condition during iommu_group creation Date: Thu, 10 Jun 2021 09:46:54 +0530 Message-ID: <1623298614-31755-3-git-send-email-amhetre@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1623298614-31755-1-git-send-email-amhetre@nvidia.com> References: <1623298614-31755-1-git-send-email-amhetre@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1974845e-8d18-4046-3329-08d92bc6af7a X-MS-TrafficTypeDiagnostic: DM4PR12MB5039: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3631; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cxwA1oMzqw3QUgSXmLC/CNwarktwdvFP8LrAlb70zDfs13MRvVSyWSWOG/gPqb7r5UJUjfA8ck5tgc2QRidfl4F50SDz4SmaZd7ZNUeDOuta8duD2s6aePbZ+CdafZAbCY9ymMKhlvpalfyJPf6zol28Z4phklvwziglLAgRTJqojpEhspGLCq2F06nGlAQS6NgNeR4CEKwZfpHEBQbnNsUiGglXz27mQkRI9XND1HbgC++t2JVY1vIw0dFyfEQjOGDjTsgofrORe5XNzg7Ga3Eyi4f8/nZFu4AsWpjRdwDxHTDe9PYZ5aQTaiTOsygoVXckEr7YpzZgDiAxZjGHXUJhJhIQg2zUGPIcl0Oy/MqZjyYZwHw+s8GsqtlAa8NVRO7T2p8A7yMabAKQmPgvXP6o5py5HMbpdGacl614yU5TrKuLoVk7mLKu4VuKMnupB1fONCJ/cKdjW7JuGfPhrUvp8rv7dB7VmrZA9Vh/rCutEKyuDsvDiYExNRuXTDU85vKYy8+UZ87io50UTiJ6ESzZhppU8ZOhXqsyhV2/yPVO7MY6McrQmqOI/h6/5kmzHB1wSj25VemYYrX8O05vIIVwBCTExO4ktJPBgWfZL3GfLg8A0tO3gaPEKcZSTTZgCq45YE4K0Luq5jIIqTGmWQ== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(346002)(39860400002)(396003)(376002)(136003)(46966006)(36840700001)(8936002)(8676002)(6636002)(478600001)(426003)(2616005)(47076005)(83380400001)(2906002)(82740400003)(7636003)(36906005)(356005)(70206006)(86362001)(36756003)(186003)(7696005)(54906003)(82310400003)(110136005)(70586007)(6666004)(5660300002)(336012)(26005)(4326008)(36860700001)(316002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2021 04:17:39.6076 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1974845e-8d18-4046-3329-08d92bc6af7a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT011.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5039 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210609_211750_194956_D68817FA X-CRM114-Status: GOOD ( 10.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Krishna Reddy iommu_group is getting created more than once during asynchronous multiple display heads(devices) probe on Tegra194 SoC. All the display heads share same SID and are expected to be in same iommu_group. As arm_smmu_device_group() is not protecting group creation across devices, it is leading to multiple groups creation across devices with same SID and subsequent IOMMU faults. Fix this by protecting group creation with smmu->stream_map_mutex. Signed-off-by: Krishna Reddy --- drivers/iommu/arm/arm-smmu/arm-smmu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c b/drivers/iommu/arm/arm-smmu/arm-smmu.c index 6f72c4d..21af179 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c @@ -1458,6 +1458,7 @@ static struct iommu_group *arm_smmu_device_group(struct device *dev) struct iommu_group *group = NULL; int i, idx; + mutex_lock(&smmu->stream_map_mutex); for_each_cfg_sme(cfg, fwspec, i, idx) { if (group && smmu->s2crs[idx].group && group != smmu->s2crs[idx].group) @@ -1466,8 +1467,10 @@ static struct iommu_group *arm_smmu_device_group(struct device *dev) group = smmu->s2crs[idx].group; } - if (group) + if (group) { + mutex_unlock(&smmu->stream_map_mutex); return iommu_group_ref_get(group); + } if (dev_is_pci(dev)) group = pci_device_group(dev); @@ -1481,6 +1484,7 @@ static struct iommu_group *arm_smmu_device_group(struct device *dev) for_each_cfg_sme(cfg, fwspec, i, idx) smmu->s2crs[idx].group = group; + mutex_unlock(&smmu->stream_map_mutex); return group; }