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 8116B2DECCC for ; Wed, 26 Nov 2025 17:30:11 +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=1764178213; cv=none; b=fQmnjiDAWyXGx3vHJ3GjvmhOjhrI9qTF851YlN9tzdGhK1v1kDu8MHP7tWVAwyt3VnvdtlcQRqi7cm6K78sbLsnkBZRaDGncFcRMicPOp1RS8cj56WmPPEmnp77Ov1lMubHIVsHAfFy+pX7OzBUV9CLLASzfcCloFa+raJ8OcB4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764178213; c=relaxed/simple; bh=Cl7knpSbUZAC0/CoNr3UsqLF86lksrDHgOcfcFynZEQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=m17Ffu7mLpjx3Ol34ktCNuOhR/GUd3PA61XhILm4fKzKgZ88WrIemFZMHGsa57QBiHFxlfoazj/kByM2IhFGGDKtJLQ9VHPbFpJj1Gdz5UlFfRqwdNqN7y3DtzA015CDEmirAshFiim6ZrLdFHm71XmT61vAgGhdw9j5brk8e3s= 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=ejmWNOck; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IFSg8BzX; 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="ejmWNOck"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IFSg8BzX" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AQFwVrI1234719 for ; Wed, 26 Nov 2025 17:30:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DJcjXg1+RvjOx5A8hSzA1CiyWHl8XyDYL+rBPEwr07o=; b=ejmWNOckF76MxY8V rNu641AM/RJrkE7i8ZXqLBlJM5pn5g9PuAq/Ocub9ingeNFKsqXamOTeClr4A/M1 cDkVWxzQ5q/p9qqYyvUrTAn2dfSI3erAhAg8j/UGDcKVQ6dEhJ1dDVsvZ/avuGpH EVEW/DU3WLAY91P/hBiqWsAWR08+MkMcV7X3W2Wp3ZZD+pacT87Pday6DKR31VgR a3u5+un/V7VD0AKW1FQYpZQALL1tGs6Y3ZEGmNBaiWp56bUCOhphwZh1SZ9DUpYR 8sed0tL7q4w2vRvwJXhlsHqYk9yErT//dv66lIJ6BpyjfrngoPBjXSPlqjY78twE nRzwiA== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4anwd41qyx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Nov 2025 17:30:10 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-7ae3e3e0d06so5257602b3a.0 for ; Wed, 26 Nov 2025 09:30:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1764178210; x=1764783010; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=DJcjXg1+RvjOx5A8hSzA1CiyWHl8XyDYL+rBPEwr07o=; b=IFSg8BzX6rK0i78RwEo0Sn3NW/Mavdr0arzbRAiwrWHmB1gIVLVysuUchoIYrlIDjV mJPQESluAo0IAn7NNrZIvVL6X0z4QygRBRIVmagNvyZUFmQYl/tNRLOsuWYcLk+ed9iD BrR3iqJOFRIRC+aeijbNa9mHGskHVnTY0DXWFDTuFBAqJaiqLEEIlUM3Hl4jz/ijZCvz +4UFmtu7yBMHCGspO7ZYW6RVXhr+dzK12hkmmDK4wGvzrBmaek2us8/atr9uRVQPkhSk QDweL/pcyH7BWXk12KuBzqyYYS+27tyZACOAyVUZdGNRRcPtsa47cNLpySVOF0wWINah EeEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764178210; x=1764783010; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DJcjXg1+RvjOx5A8hSzA1CiyWHl8XyDYL+rBPEwr07o=; b=wT/tGohs/atJBTetczGeuwHxNZIdGnx57tSpbNXdTfyhiMkvjeDe3bNNYwQuem6+m0 oBcZ8H67b8Fhv4SHflt6im3icWDyfMLkFyQ/TO5GGnuw3tQ+CO2EdM/Dwd0PlgzSouu0 Ffzut06JX8Vw1Q/Uzx0+OzsI6/tCIkVro6DV5ZI613ZFKe6wdwKun0Ri02sjqSlJDiBr 6Q030X25jmQV0TDn3vT9YfWEe00522YaI9qeFeh5xnC6cPIi9npwl50qCqC+cg/yP6Xa 4rW/YCX3xilkMWCvPeyjh5Y1vAIJExwWCwKatVAqEUlIMsYrLDrIgcn6d108WfA58Vb4 RbuA== X-Forwarded-Encrypted: i=1; AJvYcCXwSz8ZHjGxIw6sC2ptlY8fhRDv3VIcIpdDkj11Y45XijzAI4gcvMQIfYmjZcLCVVs7qXs0W1fkT+kHrxM=@vger.kernel.org X-Gm-Message-State: AOJu0YwseFpUDyZ4VnyL/Fo9IfZcWVxDKPV4G25Ks/DDihbUujGi03Wp i7V5TYEidb4Rb6qShT9sYMeD74vG+peQoKx5M1MhwVfxosa0jPX4Jx+8sbvbMgEoYKD+rcA15Kn 6slEqHKJR8ADFU6T4QhADzrQfGdodqtkDJ+mrbIQifCU9xl2u/t2jgEdS5aVvfyYYK3Y= X-Gm-Gg: ASbGncuG9svGqw1X0nBD28Aa2Tp+D6MNFSeOZzTSoSSDHO77Tbg51We3UX9rZjVV3Dh MVDLPLWS6BEiji1/axKAux6UOGxLmNGL2Ki3vF9Ue1hwCKAxozFtT27hc8PhjJUOgMgN3oJyYrQ Nqph+6E3v1GATY+UKAdB/jlnFOpGscIWgqqAzkoctdflsby4HMqU4qmoQmGiEemnBkllIFMKahA xBUfRGlq0sfXV5YOCa0PwPFB/AvoZbzeHas/92uOTGGDhWoU3CoLESFi2AwHEuCApZUIQQJkt7a uT9by1gBWDx1B1rqTNGk6Tqdudp5w8Y8CuiBo+BQ1M4sgsWwjpBxa1vr9mBEJgy7/k1OtTla3eC 7CH4sVoIQSLsM56FjSCyjnPBmHEqgZkZbR8xxc8aT X-Received: by 2002:a05:6a20:e210:b0:344:bf35:2bfa with SMTP id adf61e73a8af0-36150ef9040mr23912000637.33.1764178209830; Wed, 26 Nov 2025 09:30:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IFgCht1i3mSdLrutDTv1qMY5Sh4WT+aZBZWLtHCFnjknYdzLSmlNABUFcS+YGaiH/R40Vlr/A== X-Received: by 2002:a05:6a20:e210:b0:344:bf35:2bfa with SMTP id adf61e73a8af0-36150ef9040mr23911960637.33.1764178209329; Wed, 26 Nov 2025 09:30:09 -0800 (PST) Received: from [192.168.1.6] ([122.177.245.123]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7c3ed892396sm22301815b3a.29.2025.11.26.09.30.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 26 Nov 2025 09:30:08 -0800 (PST) Message-ID: <2f0b9803-55ad-4425-85f9-60846fc4bd4e@oss.qualcomm.com> Date: Wed, 26 Nov 2025 23:00:01 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 0/6] of: iommu-map parsing for multi-cell IOMMU To: Robin Murphy , will@kernel.org, joro@8bytes.org, robh@kernel.org, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, bjorn.andersson@oss.qualcomm.com, bod@kernel.org, conor+dt@kernel.org, krzk+dt@kernel.org, saravanak@google.com, prakash.gupta@oss.qualcomm.com, vikash.garodia@oss.qualcomm.com Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org References: <0319bdf5-0a46-40fc-93f8-30d74cf6475a@arm.com> <351373ed-c699-4945-a978-cb35412918bc@oss.qualcomm.com> <5237fb86-dec6-46e3-82bc-d41f3d537e53@arm.com> Content-Language: en-US From: Charan Teja Kalla In-Reply-To: <5237fb86-dec6-46e3-82bc-d41f3d537e53@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: _40DyCZupPnk8awfr7saWKaf4cLdjYDX X-Authority-Analysis: v=2.4 cv=feqgCkQF c=1 sm=1 tr=0 ts=69273922 cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=AKoc6KOQV6GO8V7HCDy2DQ==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=ItF2kG97CfwsPVWtkWwA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-GUID: _40DyCZupPnk8awfr7saWKaf4cLdjYDX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI2MDE0MiBTYWx0ZWRfX3gyt9+oCtcfe U/q2lYI6Ig7myf+scyyjgdBSJexG8qftInlgdUw0HdiLaIY+0KTbo1CkZFFxePyZZm58OaCNBXy Ejv6KVw2x3TDty83TTNs+mVyy285phdUG5ys5MwxgMTIQa8GKnLSpBY1e8Gkx4KHqCCJb0KvMDj atoMg0JFgSt2kcToxUlN8tXi0Uf3dDlgowwkaLk1/9frXXIamAGiWr6GDDbE1G42pryXJ65OBJO E2oUDNBaBFuHGgwx+ImUB1Xt0/coOokb9iPLuj/GtafDaR1JXt/Skt6XXUEdVR6Q5dhHyp5hD90 SuK0Pwc6ilV7K+wA5GVhzsVBDUbxfhG4eBxKzpjvcIcFHTCqp5WOQf2lF6x3Zpe/K/25Ll4yHs3 5GGOntjkXDp1pCo8ezl5khK0Uim3ow== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-25_02,2025-11-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511260142 Thanks a lot Robin!! On 11/24/2025 10:21 PM, Robin Murphy wrote: >> ----------------------8888--------------------------------------------- >> >> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c >> index a511ecf21fcd..ac005e70de7d 100644 >> --- a/drivers/iommu/of_iommu.c >> +++ b/drivers/iommu/of_iommu.c >> @@ -16,6 +16,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "iommu-priv.h" >>   @@ -41,6 +42,18 @@ static int of_iommu_xlate(struct device *dev, >>       return ret; >>   } >>   +static int of_iommu_configure_cb(void *arg, u32 *id_out) >> +{ >> +    struct of_phandle_args *iommu_spec = >> +        (struct of_phandle_args *)((void *)id_out - offsetof(struct >> of_phandle_args, args)); > > Not sure whether to be impressed or disgusted... If we are to take a > callback approach then it should probably standardise on passing a full > of_phandle_args to encode the map output. Particularly given what I've > just noticed below... > Sure... will make patches based on this... >> +    struct device *dev = arg; >> +    int err; >> + >> +    err = of_iommu_xlate(dev, iommu_spec); >> +    of_node_put(iommu_spec->np); >> +    return err; >> +} >> + >>   static int of_iommu_configure_dev_id(struct device_node *master_np, >>                        struct device *dev, >>                        const u32 *id) >> @@ -48,12 +61,10 @@ static int of_iommu_configure_dev_id(struct >> device_node *master_np, >>       struct of_phandle_args iommu_spec = { .args_count = 1 }; > > Oh dear, I totally overlooked this, and off the top of my head I'm not > sure it's simple to fix 🙁 > > So it's still not actually working as intended. Oh well, I did say it > was untested... I assume you are talking about the .args_count here, since of_map_id() filling id_out, should we also pass the &args_count and let of_map_id() fill that(with cell_count) or as you mentioned, pass the complete of_phandle_args ? Thanks, Charan