From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A21343D5C1D for ; Tue, 23 Jun 2026 12:21:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782217279; cv=none; b=mNbq1DmO36xfgnSFJeBOEqbB6JRTFloeJRg9pgXlPe4t0bH56LV1FdUg7XNUPQs3DhXFNrGrKTyw0xHVrPYUFJYsb7Z2KsXa2t9/rn6V9/z9iHxsh5QgIV4SjpSym68R5e3Vy5LwsjtW8NqtC9rCqVvFf+hXgx50kltU48qwr8A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782217279; c=relaxed/simple; bh=8BtzNJYd189mxIUKftmER9o/tQq+pg6bO8RXUFVJiDY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b+C7VqC4F94bcfQNNmaJvauBRVIkGHI8DIIQ+VCqGhGjRFGgvT/UcQ+yI89UkaJBH5LAkWtJxshF4Oy7t4+LLwiomgT8CVBNss3qJlyJj9FkqinwezvXX/CgBGi+sZvKnwY3HyLXJqlkFuEzlaiPh8rC+4t30FkF6WcacPWOJoo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=YHNtFBBD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UzHRy9Wr; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="YHNtFBBD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UzHRy9Wr" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65NBXWws2308415 for ; Tue, 23 Jun 2026 12:21:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Tl6TMjOkY0v pzUkVoZ6vM0rqRq7dBnGr6QKrXS58jEs=; b=YHNtFBBDs4TKgMga48qTiEUHFKi NmksgOIL2hvnjwXE61ef29VKhpTJ0T7IbUYhvOh2TVF9Qpkehu0YI8f8764Y8naO xX8+mTSMV6yeVIjL6RZKtfOUgFhRPtMR6ypwkMQ1A5O5sftSQeFh4/81MmplR9xe wCcHqiXMoonbj5/wn5u9Ta8Jqd9vi9bqMRUARtvSLDTgJzPciAGC+d+5tjqPx5fP lxa9daalE6wcTE1eo2CpcxGwaBEHP3449oEXbgdPCYnDIHQI/c3mx8xw11SJi92H djHxlxu3/wuSfosV8PXhRE20g+tb+hSPGQJ8UW55cq5JH3F4DPqsewuq8Tw== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eyp1gs2y0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 23 Jun 2026 12:21:17 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c898897816fso3500313a12.1 for ; Tue, 23 Jun 2026 05:21:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782217277; x=1782822077; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Tl6TMjOkY0vpzUkVoZ6vM0rqRq7dBnGr6QKrXS58jEs=; b=UzHRy9WrqtQYJP9Sut+leG9ToqbmRcK+WKSSi2jzudSGGMUlPeRNbVo+tHp08m4tGm 8zx7YCNNV0Q9+9TH6Ljs0R4kuEWty6N1vmFXTWwJX6EB7V48MCoyf+tjxyiLYt/HXlXK szUAik+WUtRzxVBgMMjdOin2e4azZcDllIspWO/g23Il2d7Wt1sDvNkU/+0E29EyPXHu 9eGw12IREA44UojxSrm1rBFc7njm7vymdXx/5GjJXupmvvmssYhMTbZBH5kahohh1o9A 2/y4LlM2qFvSPimM026sZHZ/MV73wsGrypoONQnQa1sEwgkN4xWGJrB+9IbG1j+s7wm3 RAgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782217277; x=1782822077; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Tl6TMjOkY0vpzUkVoZ6vM0rqRq7dBnGr6QKrXS58jEs=; b=rHq3Oxal14exTYuKXWhbEZ/XrppKgEPGcw2csyMzBg9FozuYh3e5zestD/TamqKDJ+ dmvouq+bIxmk94FfP06Su2FKEeRgbsi0/1mJ8Jqc9N8igK0w3N+R6SQstqK/HpsfpC0E pAFT15pOSQ39QB1mZcYHS9PpvKpfVGHJUmq4dl7UVlY8kO+DNpQdLrXl65znTZBeMzfh xAWNW+lTURqe7Ea3fbAHb0qe8flOyOWDEFzme4lK0PI+JE6jFzwma7clE3ko6cxMSsL1 WskYpJmgXikyFBgp/4KHZ9UZlY0j75BCKPIalHZ5ET3CqHUAmTY1wNuYeF/cTYBamjsd hy+A== X-Forwarded-Encrypted: i=1; AFNElJ9hbpE30MXpwlGfAiUsafp1FooqoOM+8qhhsXzJ/ivmowKpOJDptnA4djIVrLD14ykFzXvljW36BRiBjr0=@vger.kernel.org X-Gm-Message-State: AOJu0YwJEMlpJZ+QPrW69bpna6It6kDfaN1g9yP9iePohQ70JXeYLdNv OwYxhH+sNGRKxij/hTgb7ky0WzKOyK4X5H9l30Ud2i094Ljmp7XCRbzUdgX5z80K16Kw2krtnEO jKyFtMwNxkvDuTl1utT3GsB6ijvooFJhQqQnALDoSX/UEVaYSkICgZFVO7+hO6YEvFXQ= X-Gm-Gg: AfdE7cktYPREeFqGSdqyPg0NQvFv1Zl4VIG4RptKND4j6+ZxXssJ4h7EIOlJiCVTrvA V3hK8uG3OcUylpvQdqi79IxTxDZ1dM5wlJjooywn8EbE9b9THy9GVlLroxis3sQofN85gtuIzah LX99kCMZBNpJepxSeJCXZ1SY2rewTP7GrZ5J6MY2oqhJcKfTXUKAM9vloAMCY1gYj1xVqE6yoEg qi2zXH8wrq5ZRPe4tN/v+aa8T77nR2Oo+etgkdhvOS5aIHoaF9CUzsysjIjyJEZLe7zoxwDBAhd kM4j+qjO5vn6DgAOuL7TTvYZ0qmY7ZlTA607RFT4MeicFa1rs8dG78bUKsWx2e6lPlz4qC/vvym 9E+7aGsJ8iCjQDL8kGiO+M9pwdx3+NrAMmJSfEQ== X-Received: by 2002:a05:6a21:1f83:b0:39f:91e9:cada with SMTP id adf61e73a8af0-3bd14f00047mr3463386637.9.1782217276871; Tue, 23 Jun 2026 05:21:16 -0700 (PDT) X-Received: by 2002:a05:6a21:1f83:b0:39f:91e9:cada with SMTP id adf61e73a8af0-3bd14f00047mr3463324637.9.1782217276119; Tue, 23 Jun 2026 05:21:16 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84564e74646sm10171856b3a.29.2026.06.23.05.21.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2026 05:21:15 -0700 (PDT) From: Mukesh Ojha To: Rob Clark , Will Deacon , "Joerg Roedel (AMD)" Cc: Robin Murphy , iommu@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Mukesh Ojha Subject: [PATCH 5/8] iommu/qcom: Publish pgtbl_ops before releasing init_mutex Date: Tue, 23 Jun 2026 17:50:31 +0530 Message-ID: <20260623122034.1166295-6-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260623122034.1166295-1-mukesh.ojha@oss.qualcomm.com> References: <20260623122034.1166295-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: F4ugIPwSJNjd80kdWYM6_YBugSQgnzlK X-Proofpoint-GUID: F4ugIPwSJNjd80kdWYM6_YBugSQgnzlK X-Authority-Analysis: v=2.4 cv=QJhYgALL c=1 sm=1 tr=0 ts=6a3a7a3d cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=Ya-8ghbQ4qwRuljleqkA:9 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIzMDEwMSBTYWx0ZWRfXyehc/2WxO4tV 4HNMKd3eIRrNUJxxQ7DtxzGh38lLgHWkltXi2L67ZVW+aFRHgC5XvMbhA8UHcRet+7Vk0PtXpra xm4SRrBqP6fYcGuRwUaaIZsKZwVHXA4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIzMDEwMSBTYWx0ZWRfX5CwijirZ2IW0 pVcubaFVIwZe+5bwGh1mzdicP9Vhrq9xzW2HiFUcxVSYQuxEBo/eCzR0+txjN8PsoFbsVaG6YlA 4Rdj+M2w/nWPZVwiPXqkDB7PCMf4ugFwOki0gtJUAZ24g8sjK84rZj88nSsPU6oi7CwRATVW8vx xps76Y8qGUxpca/Xm6Y/p7hzNZ6jdLjPkIYNJot4a217t3dZnPXEq73RfcELH8gaNRcW1Oft27E XE3qNbL2lfd2zIn42sB/OnLz0LFWRa//30u76gPjaCbHkFWh1F1vKm66gGuu0p6EwzyCN4shDCw mts+HdyJsxDJhe57qf91LR2pC8fTBkIfRmvt+jNVfOqHE0b19OTyY26nqWWn9CaywYi+wx/02ye JdbHdoSSFRrbRE9GEdo9heomxtIRIFmpp8bGkotZkFjW7fRgMQXzbv3aloWxFwJdnPT21n/RSy6 Wkx4PcoRqzIHqSQLc6A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-23_03,2026-06-23_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 bulkscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606230101 qcom_domain->pgtbl_ops was assigned after mutex_unlock(). Another thread calling qcom_iommu_init_domain() would see qcom_domain->iommu already set (domain fully initialized) and skip re-initialization under the mutex. If it then called qcom_iommu_map() before the first thread set pgtbl_ops, it would observe a NULL ops pointer and return -ENODEV for valid mappings. Move the assignment to before mutex_unlock() so that once the mutex is released the domain is fully visible to concurrent operations. Signed-off-by: Mukesh Ojha --- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu/qcom_iommu.c b/drivers/iommu/arm/arm-smmu/qcom_iommu.c index b6ce85f7f923..40fb0408dc07 100644 --- a/drivers/iommu/arm/arm-smmu/qcom_iommu.c +++ b/drivers/iommu/arm/arm-smmu/qcom_iommu.c @@ -306,13 +306,12 @@ static int qcom_iommu_init_domain(struct iommu_domain *domain, ctx->domain = domain; } - mutex_unlock(&qcom_domain->init_mutex); - /* Publish page table ops for map/unmap */ qcom_domain->pgtbl_ops = pgtbl_ops; - return 0; + mutex_unlock(&qcom_domain->init_mutex); + return 0; out_clear_iommu: free_io_pgtable_ops(pgtbl_ops); qcom_domain->iommu = NULL; -- 2.53.0