Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2225625/?format=api
{ "id": 2225625, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2225625/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260421-mainline-send-v1-sending-v1-4-bcb0857724de@alex-min.fr/", "project": { "id": 42, "url": "http://patchwork.ozlabs.org/api/1.2/projects/42/?format=api", "name": "Linux GPIO development", "link_name": "linux-gpio", "list_id": "linux-gpio.vger.kernel.org", "list_email": "linux-gpio@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260421-mainline-send-v1-sending-v1-4-bcb0857724de@alex-min.fr>", "list_archive_url": null, "date": "2026-04-21T09:45:10", "name": "[4/8] iommu/msm: Look up masters per IOMMU instance", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "64e05716f1692ba29ae33d0889e4ee97fc9177a7", "submitter": { "id": 93203, "url": "http://patchwork.ozlabs.org/api/1.2/people/93203/?format=api", "name": "Alexandre MINETTE via B4 Relay", "email": "devnull+contact.alex-min.fr@kernel.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260421-mainline-send-v1-sending-v1-4-bcb0857724de@alex-min.fr/mbox/", "series": [ { "id": 500770, "url": "http://patchwork.ozlabs.org/api/1.2/series/500770/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=500770", "date": "2026-04-21T09:45:06", "name": "Add Samsung Galaxy S4 support", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500770/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2225625/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2225625/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-gpio+bounces-35299-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-gpio@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=isJpwL9x;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35299-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"isJpwL9x\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201" ], "Received": [ "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0HXx5wrsz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 19:45:53 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 705E83039F66\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 09:45:19 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id EFD923B27E2;\n\tTue, 21 Apr 2026 09:45:13 +0000 (UTC)", "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B1B33AEF54;\n\tTue, 21 Apr 2026 09:45:13 +0000 (UTC)", "by smtp.kernel.org (Postfix) with ESMTPS id 41422C4AF10;\n\tTue, 21 Apr 2026 09:45:13 +0000 (UTC)", "from aws-us-west-2-korg-lkml-1.web.codeaurora.org\n (localhost.localdomain [127.0.0.1])\n\tby smtp.lore.kernel.org (Postfix) with ESMTP id 34246F327CE;\n\tTue, 21 Apr 2026 09:45:13 +0000 (UTC)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776764713; cv=none;\n b=jwD0BxSGgGxrKkZaWTWAi2r0fPrNnhqLZ79guTSvHMU5orfe+6PPfinmr/S1MDw3pX7Tx1WIcTghwjowIjZeD0R//A1QdL5b33UN7uuTAhx0QMh/qlGT4YQ3Tmpui5MFbso/bN8XLvr7JArt+pwlZkbOf6W6QC2/yL1v9oysSJM=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776764713; c=relaxed/simple;\n\tbh=HcVOhAbSK02qjvp84X9PjvdvQIeKNGmDxr624WlbMDU=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=BXFFdGmcPXWziQGf0iUI2wZNQ/ZIqaBItjVf+tcqnXFTnZ0ntk9yJyb/EB4Ht5XaAo9cLUvEDiI7AnpXAYnwLvy/1ARpQQWg22zKBVDEi4jWyPgINwfAz3sNkrdBPgPg82vsbvOhbQJpZZstOWRsbGXBHeDiSFi+EODVF0tm7ho=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=isJpwL9x; arc=none smtp.client-ip=10.30.226.201", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776764713;\n\tbh=HcVOhAbSK02qjvp84X9PjvdvQIeKNGmDxr624WlbMDU=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;\n\tb=isJpwL9xof/kGK4AJWf75Vph1gdbyULIbU2RNL+HLuU643kz4erxVFocWPPVwxIl2\n\t GpEtwP0JPYtSR1ZQNFcmvD29x0KVfZ7WamHa0OIiS6RmXN/w8TckBP5fM3NUtS4yNs\n\t oD8ENzOXo47qUk80XU2/YQMVj9KZO8iEoEU7WlByXTJ+WNNBwBMDqFVa1CTpgjH+qF\n\t npBn3RroirJV3SOzprrGnDvSpoU64ln1KCItDrcGhNzYjp62SahNNH5UWLRHwD4aRa\n\t i59HygO1E99u240YoLHpTJkLgEhVWHvfiGpKK2syMz4G3Nuzp5CUIdS6J4SsvSpDNL\n\t UpVRdjOtHjMZw==", "From": "Alexandre MINETTE via B4 Relay <devnull+contact.alex-min.fr@kernel.org>", "Date": "Tue, 21 Apr 2026 11:45:10 +0200", "Subject": "[PATCH 4/8] iommu/msm: Look up masters per IOMMU instance", "Precedence": "bulk", "X-Mailing-List": "linux-gpio@vger.kernel.org", "List-Id": "<linux-gpio.vger.kernel.org>", "List-Subscribe": "<mailto:linux-gpio+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-gpio+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260421-mainline-send-v1-sending-v1-4-bcb0857724de@alex-min.fr>", "References": "<20260421-mainline-send-v1-sending-v1-0-bcb0857724de@alex-min.fr>", "In-Reply-To": "<20260421-mainline-send-v1-sending-v1-0-bcb0857724de@alex-min.fr>", "To": "Bjorn Andersson <andersson@kernel.org>,\n Konrad Dybcio <konradybcio@kernel.org>, Rob Herring <robh@kernel.org>,\n Krzysztof Kozlowski <krzk+dt@kernel.org>,\n Conor Dooley <conor+dt@kernel.org>, MyungJoo Ham <myungjoo.ham@samsung.com>,\n Chanwoo Choi <cw00.choi@samsung.com>,\n Guru Das Srinagesh <linux@gurudas.dev>, Linus Walleij <linusw@kernel.org>,\n Rob Clark <robin.clark@oss.qualcomm.com>, Joerg Roedel <joro@8bytes.org>,\n Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>,\n Kees Cook <kees@kernel.org>, Tony Luck <tony.luck@intel.com>,\n \"Guilherme G. Piccoli\" <gpiccoli@igalia.com>", "Cc": "linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,\n linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,\n iommu@lists.linux.dev, Alexandre MINETTE <contact@alex-min.fr>", "X-Mailer": "b4 0.13.0", "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1776764711; l=3031;\n i=contact@alex-min.fr; s=20260421; h=from:subject:message-id;\n bh=UrMTbZmWlSX+tqRYklfcc7/MU3hItTnCn3Swx8np/0k=;\n b=ysNmz9HJjSMgPgv7jED3yAV/X6Wskid2fofvFDhF3jxGMMWvJ0qATjOu2lFQg9SDM3VI+KmXu\n UfKhkT/d93sCwc4eOBXCsMPptc72IZAiSkDVuaw69Kq3sM12mrg/cS1", "X-Developer-Key": "i=contact@alex-min.fr; a=ed25519;\n pk=KOCaxY4v16ptaT0uk1FRkuaDF2n1JhmnYwLiqWD76M4=", "X-Endpoint-Received": "by B4 Relay for contact@alex-min.fr/20260421 with\n auth_id=743", "X-Original-From": "Alexandre MINETTE <contact@alex-min.fr>", "Reply-To": "contact@alex-min.fr" }, "content": "From: Alexandre MINETTE <contact@alex-min.fr>\n\nMSM IOMMU stores context descriptors on each IOMMU instance. Looking up\nthe descriptor through dev_iommu_priv_get() is not sufficient because a\ndevice can reference multiple IOMMU provider nodes.\n\nLook up the master from the target IOMMU ctx_list instead, and use the\nsame helper when probing and attaching devices. This avoids dereferencing\na NULL master when an IOMMU already has context entries for another\ndevice, and keeps separate context descriptors for separate IOMMU\ninstances.\n\nThis is required to boot APQ8064 boards using multiple IOMMU contexts.\n\nSigned-off-by: Alexandre MINETTE <contact@alex-min.fr>\n---\n drivers/iommu/msm_iommu.c | 28 ++++++++++++++++------------\n 1 file changed, 16 insertions(+), 12 deletions(-)", "diff": "diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c\nindex 0ad5ff431d5b..9c03878d0d2c 100644\n--- a/drivers/iommu/msm_iommu.c\n+++ b/drivers/iommu/msm_iommu.c\n@@ -357,17 +357,25 @@ static int msm_iommu_domain_config(struct msm_priv *priv)\n \treturn 0;\n }\n \n+static struct msm_iommu_ctx_dev *find_iommu_master(struct msm_iommu_dev *iommu,\n+\t\t\t\t\t\t struct device *dev)\n+{\n+\tstruct msm_iommu_ctx_dev *master;\n+\n+\tlist_for_each_entry(master, &iommu->ctx_list, list)\n+\t\tif (master->of_node == dev->of_node)\n+\t\t\treturn master;\n+\n+\treturn NULL;\n+}\n+\n /* Must be called under msm_iommu_lock */\n static struct msm_iommu_dev *find_iommu_for_dev(struct device *dev)\n {\n \tstruct msm_iommu_dev *iommu, *ret = NULL;\n-\tstruct msm_iommu_ctx_dev *master;\n \n \tlist_for_each_entry(iommu, &qcom_iommu_devices, dev_node) {\n-\t\tmaster = list_first_entry(&iommu->ctx_list,\n-\t\t\t\t\t struct msm_iommu_ctx_dev,\n-\t\t\t\t\t list);\n-\t\tif (master->of_node == dev->of_node) {\n+\t\tif (find_iommu_master(iommu, dev)) {\n \t\t\tret = iommu;\n \t\t\tbreak;\n \t\t}\n@@ -405,10 +413,7 @@ static int msm_iommu_attach_dev(struct iommu_domain *domain, struct device *dev,\n \n \tspin_lock_irqsave(&msm_iommu_lock, flags);\n \tlist_for_each_entry(iommu, &qcom_iommu_devices, dev_node) {\n-\t\tmaster = list_first_entry(&iommu->ctx_list,\n-\t\t\t\t\t struct msm_iommu_ctx_dev,\n-\t\t\t\t\t list);\n-\t\tif (master->of_node == dev->of_node) {\n+\t\tif (find_iommu_master(iommu, dev)) {\n \t\t\tret = __enable_clocks(iommu);\n \t\t\tif (ret)\n \t\t\t\tgoto fail;\n@@ -601,10 +606,10 @@ static int insert_iommu_master(struct device *dev,\n \t\t\t\tstruct msm_iommu_dev **iommu,\n \t\t\t\tconst struct of_phandle_args *spec)\n {\n-\tstruct msm_iommu_ctx_dev *master = dev_iommu_priv_get(dev);\n+\tstruct msm_iommu_ctx_dev *master = find_iommu_master(*iommu, dev);\n \tint sid;\n \n-\tif (list_empty(&(*iommu)->ctx_list)) {\n+\tif (!master) {\n \t\tmaster = kzalloc_obj(*master, GFP_ATOMIC);\n \t\tif (!master) {\n \t\t\tdev_err(dev, \"Failed to allocate iommu_master\\n\");\n@@ -612,7 +617,6 @@ static int insert_iommu_master(struct device *dev,\n \t\t}\n \t\tmaster->of_node = dev->of_node;\n \t\tlist_add(&master->list, &(*iommu)->ctx_list);\n-\t\tdev_iommu_priv_set(dev, master);\n \t}\n \n \tfor (sid = 0; sid < master->num_mids; sid++)\n", "prefixes": [ "4/8" ] }