{"id":2234599,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2234599/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/patch/20260507221145.62183-3-sauravsc@amazon.com/","project":{"id":35,"url":"http://patchwork.ozlabs.org/api/1.2/projects/35/?format=json","name":"Linux I2C development","link_name":"linux-i2c","list_id":"linux-i2c.vger.kernel.org","list_email":"linux-i2c@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260507221145.62183-3-sauravsc@amazon.com>","list_archive_url":null,"date":"2026-05-07T22:11:45","name":"[v2,2/2] i2c: tegra: make tegra_i2c_mutex_unlock() return void","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"7bd7bf3f9359e3b0bb42bd1e97cee5f0967cb423","submitter":{"id":93348,"url":"http://patchwork.ozlabs.org/api/1.2/people/93348/?format=json","name":"Saurav Sachidanand","email":"sauravsc@amazon.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-i2c/patch/20260507221145.62183-3-sauravsc@amazon.com/mbox/","series":[{"id":503285,"url":"http://patchwork.ozlabs.org/api/1.2/series/503285/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/list/?series=503285","date":"2026-05-07T22:11:43","name":"i2c: tegra: fix error handling in tegra_i2c_xfer()","version":2,"mbox":"http://patchwork.ozlabs.org/series/503285/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2234599/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2234599/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-i2c+bounces-17307-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-i2c@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=amazon.com header.i=@amazon.com header.a=rsa-sha256\n header.s=amazoncorp2 header.b=MAnT9v8v;\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-i2c+bounces-17307-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=amazon.com header.i=@amazon.com\n header.b=\"MAnT9v8v\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=52.13.214.179","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=amazon.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=amazon.de"],"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)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gBRMy3VP5z1yKm\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 08 May 2026 08:13:18 +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 F18603013EDC\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  7 May 2026 22:13:15 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6F5DD3563CD;\n\tThu,  7 May 2026 22:13:12 +0000 (UTC)","from pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com\n (pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com\n [52.13.214.179])\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 0E4FB2F8EBD;\n\tThu,  7 May 2026 22:13:10 +0000 (UTC)","from ip-10-5-9-48.us-west-2.compute.internal (HELO\n smtpout.naws.us-west-2.prod.farcaster.email.amazon.dev) ([10.5.9.48])\n  by internal-pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com\n with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2026 22:13:10 +0000","from EX19MTAUWB002.ant.amazon.com [205.251.233.48:27431]\n by smtpin.naws.us-west-2.prod.farcaster.email.amazon.dev [10.0.41.42:2525]\n with esmtp (Farcaster)\n id 3b87f01a-ba66-4338-804c-9d6105016112; Thu, 7 May 2026 22:13:10 +0000 (UTC)","from EX19D001UWA001.ant.amazon.com (10.13.138.214) by\n EX19MTAUWB002.ant.amazon.com (10.250.64.231) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;\n Thu, 7 May 2026 22:13:08 +0000","from dev-dsk-sauravsc-1a-8777b848.eu-west-1.amazon.com\n (172.19.118.34) by EX19D001UWA001.ant.amazon.com (10.13.138.214) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37; Thu, 7 May 2026\n 22:13:06 +0000"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1778191992; cv=none;\n b=qG7Vygm/Q9voGnPgTGA/mCKoKSPZUKFD209xfPzvHVvF+k3Ksi6J2JCyiSv0dg+H9F4KjknYwxKdZkSf/IFmzdn8Q7jpja1vwaUEPlrCXabqUo6xwIyqhfESUcs//384qYrz6WHHDW3/7wHVu0PGqvlPu1zHlhcQ2AUJTetV5X0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1778191992; c=relaxed/simple;\n\tbh=akk1j1Xn9tcYR2vV0ogopsh/iOJv8tB4tpZ+PKVxtag=;\n\th=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=Bszem0HjB5jEs6Kdl4gvauZXOxk5dzl3cUxOg80mbtk5nLcdqIaTNoeZdJJlxv/JIbe8ktdDde7I0+1+NWgMSJ8jwYiFUVbr3o9wjfvEcWmmVp72X1EPsHL2jevnGJf9AAnemThhd0W+cJnlKy1JaJqfMkfJ58U42abXyKl1aUE=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=amazon.com;\n spf=pass smtp.mailfrom=amazon.de;\n dkim=pass (2048-bit key) header.d=amazon.com header.i=@amazon.com\n header.b=MAnT9v8v; arc=none smtp.client-ip=52.13.214.179","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazoncorp2;\n  t=1778191991; x=1809727991;\n  h=from:to:cc:subject:date:message-id:in-reply-to:\n   references:mime-version:content-transfer-encoding;\n  bh=ezGRIwcYg2jFN1fARq/lLcKzJyltevrkYigu/n24CeE=;\n  b=MAnT9v8vO7KHEl3RJlio00V4S5L3uuzii2Y+E9U5Wvto60SIzpiHDeqk\n   INw4QdjMXCPeINsCtoPjirXsEcsRfuUF2MF0dyz2XZKY5DPafKv9R7+dY\n   j0mnxF+kwf6IJ39DjgPqI2hTVFbZiyB/6BJlo3pVr7Wll9kWLMuihBWiC\n   RD76M/PqOt2L9rWYe9aeX0NveNCHiHRoGjorggwMQsrLDfaNILubynipr\n   PP/auERjXCctj5i/Nu5yeP4K3BBr/u3xV1hOasQWlgBuXT19AJNm8dvAG\n   kflRYPz2oY0K7NPsQMaEO3UDdrZP7e3pAoHwWakj3jlGpzy3nzn5b4kM3\n   w==;","X-CSE-ConnectionGUID":"Jc7OnXf9TKCqJbdVigBpFQ==","X-CSE-MsgGUID":"eWu3wH5SQdmfHr86P+LSDA==","X-IronPort-AV":"E=Sophos;i=\"6.23,222,1770595200\";\n   d=\"scan'208\";a=\"19124299\"","X-Farcaster-Flow-ID":"3b87f01a-ba66-4338-804c-9d6105016112","From":"Saurav Sachidanand <sauravsc@amazon.com>","To":"Wolfram Sang <wsa+renesas@sang-engineering.com>","CC":"Akhil R <akhilrajeev@nvidia.com>, Kartik Rajput <kkartik@nvidia.com>,\n\tThierry Reding <treding@nvidia.com>, Jon Hunter <jonathanh@nvidia.com>,\n\t<linux-i2c@vger.kernel.org>, <linux-tegra@vger.kernel.org>,\n\t<linux-kernel@vger.kernel.org>, Saurav Sachidanand <sauravsc@amazon.com>","Subject":"[PATCH v2 2/2] i2c: tegra: make tegra_i2c_mutex_unlock() return void","Date":"Thu, 7 May 2026 22:11:45 +0000","Message-ID":"<20260507221145.62183-3-sauravsc@amazon.com>","X-Mailer":"git-send-email 2.47.3","In-Reply-To":"<20260507221145.62183-1-sauravsc@amazon.com>","References":"<20260506195319.44810-1-sauravsc@amazon.com>\n <20260507221145.62183-1-sauravsc@amazon.com>","Precedence":"bulk","X-Mailing-List":"linux-i2c@vger.kernel.org","List-Id":"<linux-i2c.vger.kernel.org>","List-Subscribe":"<mailto:linux-i2c+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-i2c+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"EX19D040UWA001.ant.amazon.com (10.13.139.22) To\n EX19D001UWA001.ant.amazon.com (10.13.138.214)"},"content":"tegra_i2c_mutex_unlock() returning an error that overwrites the transfer\nresult causes silent loss of I2C transfer errors. If the transfer failed\nbut the unlock succeeded, the error was lost and the function incorrectly\nreported success.\n\nRather than propagating the unlock error (which is not actionable by the\ncaller - the I2C message may have been sent regardless), convert the\nfunction to return void and WARN on the unexpected condition. If the\nunlock fails, subsequent lock attempts will fail anyway, making the error\nvisible on the next transfer.\n\nFixes: 6077cfd716fb (\"i2c: tegra: Add support for SW mutex register\")\nSigned-off-by: Saurav Sachidanand <sauravsc@amazon.com>\n---\n drivers/i2c/busses/i2c-tegra.c | 15 ++++++---------\n 1 file changed, 6 insertions(+), 9 deletions(-)","diff":"diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c\nindex c24b8de0a9c7b..479a1667e88d5 100644\n--- a/drivers/i2c/busses/i2c-tegra.c\n+++ b/drivers/i2c/busses/i2c-tegra.c\n@@ -589,25 +589,22 @@ static int tegra_i2c_mutex_lock(struct tegra_i2c_dev *i2c_dev)\n \treturn ret;\n }\n \n-static int tegra_i2c_mutex_unlock(struct tegra_i2c_dev *i2c_dev)\n+static void tegra_i2c_mutex_unlock(struct tegra_i2c_dev *i2c_dev)\n {\n \tunsigned int reg = i2c_dev->hw->regs->sw_mutex;\n \tu32 val, id;\n \n \tif (!i2c_dev->hw->has_mutex)\n-\t\treturn 0;\n+\t\treturn;\n \n \tval = readl(i2c_dev->base + reg);\n \n \tid = FIELD_GET(I2C_SW_MUTEX_GRANT, val);\n-\tif (id && id != I2C_SW_MUTEX_ID_CCPLEX) {\n-\t\tdev_warn(i2c_dev->dev, \"unable to unlock mutex, mutex is owned by: %u\\n\", id);\n-\t\treturn -EPERM;\n-\t}\n+\tif (WARN(id && id != I2C_SW_MUTEX_ID_CCPLEX,\n+\t\t \"unable to unlock mutex, mutex is owned by: %u\\n\", id))\n+\t\treturn;\n \n \twritel(0, i2c_dev->base + reg);\n-\n-\treturn 0;\n }\n \n static void tegra_i2c_mask_irq(struct tegra_i2c_dev *i2c_dev, u32 mask)\n@@ -1700,7 +1697,7 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],\n \t\t\tbreak;\n \t}\n \n-\tret = tegra_i2c_mutex_unlock(i2c_dev);\n+\ttegra_i2c_mutex_unlock(i2c_dev);\n \tpm_runtime_put(i2c_dev->dev);\n \n \treturn ret ?: i;\n","prefixes":["v2","2/2"]}