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 X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, 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 90B50C6379D for ; Sat, 21 Nov 2020 14:04:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 74CCE22210 for ; Sat, 21 Nov 2020 14:04:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728004AbgKUOEF (ORCPT ); Sat, 21 Nov 2020 09:04:05 -0500 Received: from mga02.intel.com ([134.134.136.20]:14271 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727531AbgKUOEE (ORCPT ); Sat, 21 Nov 2020 09:04:04 -0500 IronPort-SDR: lLvfH7TsEvw7iWIgae3hkDoe/CDGZsy+r32WTQnT6D5krmFCdUkhrFXXtN1WPakjxzyn2iTkRo jZigM+m/Z1jw== X-IronPort-AV: E=McAfee;i="6000,8403,9811"; a="158634977" X-IronPort-AV: E=Sophos;i="5.78,359,1599548400"; d="scan'208";a="158634977" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2020 06:04:04 -0800 IronPort-SDR: Htr7dIdTkCCmrt54Sfjf8HyJUM/SB6y5awS91fjn9aUkHny5ZYAJcxPOlBMTHFVJp8BLGWCV9G v/uvB5eBBMGQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,359,1599548400"; d="scan'208";a="431852780" Received: from allen-box.sh.intel.com ([10.239.159.28]) by fmsmga001.fm.intel.com with ESMTP; 21 Nov 2020 06:04:01 -0800 From: Lu Baolu To: Will Deacon , Joerg Roedel Cc: Ashok Raj , Christoph Hellwig , Sohil Mehta , Robin Murphy , Jacob Pan , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Sai Praneeth Prakhya , Will Deacon , Lu Baolu Subject: [PATCH v9 3/4] iommu: Take lock before reading iommu group default domain type Date: Sat, 21 Nov 2020 21:56:19 +0800 Message-Id: <20201121135620.3496419-4-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201121135620.3496419-1-baolu.lu@linux.intel.com> References: <20201121135620.3496419-1-baolu.lu@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sai Praneeth Prakhya "/sys/kernel/iommu_groups//type" file could be read to find out the default domain type of an iommu group. The default domain of an iommu group doesn't change after booting and hence could be read directly. But, after addding support to dynamically change iommu group default domain, the above assumption no longer stays valid. iommu group default domain type could be changed at any time by writing to "/sys/kernel/iommu_groups//type". So, take group mutex before reading iommu group default domain type so that the user wouldn't see stale values or iommu_group_show_type() doesn't try to derefernce stale pointers. Cc: Christoph Hellwig Cc: Joerg Roedel Cc: Ashok Raj Cc: Will Deacon Cc: Sohil Mehta Cc: Robin Murphy Cc: Jacob Pan Signed-off-by: Sai Praneeth Prakhya Signed-off-by: Lu Baolu --- drivers/iommu/iommu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 716bd602b0ed..aad465c38067 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -501,6 +501,7 @@ static ssize_t iommu_group_show_type(struct iommu_group *group, { char *type = "unknown\n"; + mutex_lock(&group->mutex); if (group->default_domain) { switch (group->default_domain->type) { case IOMMU_DOMAIN_BLOCKED: @@ -517,6 +518,7 @@ static ssize_t iommu_group_show_type(struct iommu_group *group, break; } } + mutex_unlock(&group->mutex); strcpy(buf, type); return strlen(type); -- 2.25.1