From nobody Sun Jun 14 11:27:13 2026 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C29CA33121D for ; Thu, 2 Apr 2026 15:14:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142883; cv=none; b=QSrPzfjyMeFxo4jIrX4+a0wr2E1p00J1lEjySkkgNJm8omWo+Lf/bRh1gxlNeU8uxkrv6XT2YR92FvbYYgkNiTkY+AkTGH4PapoDL5nicV/JMbjXmkiYK6nJyPvHnpyC2eHHVRF89r4qmejMuYyRTHRvQUA4q/drzyM2icgfgoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142883; c=relaxed/simple; bh=tkVOEMPd2UVvi7ufnqgFQQBx4xsxicEdqBqOqe29Zco=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=ntczWx/Rb49v9P6I+3oseo+LVazrEqA/0yeAzsDIHyBomd/xG29AfxX64nSwf63f/kGgltLtiZxtGGnGbD/cyzaI0eVgt7kbzxFlS29lYPjNYkt+VjZicimYl7JTO4mljcOsM2cfzjuzdLFGcEMOc/EcId1sKZZGzOFtlULM4f4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Vur5qYEu; arc=none smtp.client-ip=209.85.216.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Vur5qYEu" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-35d99031e4eso591431a91.1 for ; Thu, 02 Apr 2026 08:14:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775142882; x=1775747682; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=SxY2w6DCsYlRi40UkBDrubtuEniANeT5i6QMbLNLZS0=; b=Vur5qYEuE6drplMX0HGkb5R6jwe3jhupJQ6tpBWlqAMmZSbe1nqSIFcekk5M9NpH67 XO5h389PG0w59fC/wW/csTdScAscz14BrzxwMN3Tf6rt6NWzJoO4Hxs8W92o3mvxV9/Q iwFdepw/16X12N1fGd6WIgghTzyfCzvqsmPNx5gHBMBuDzdUdE+joCOObMPasT2eUq8W i11GexuG59KHA9/YDxj4zDDURSCkUne8JeirEUKRR9ZoZ3JX8vCrG7r3FvNRA0pPTmcd 29pRgGwG0SZMnOXibU5b9X/ErqSczk0+vbcBMOn9zv/my8hGner4a0EtmMrErDn/Mqj+ Q16w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775142882; x=1775747682; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SxY2w6DCsYlRi40UkBDrubtuEniANeT5i6QMbLNLZS0=; b=C6AGQH22zD7R2pGTHBSGSxrNKeD8LRWEilnz+92X3cG4l/cTDolOjMqrcHdMgj46UT uMx2l86xwQkqWfXMSpRE1QPsdlxIUn9HNXcjQ4pOHlvgemckePYsfnmGfsbNvZ1Ufw3e fIW5qCMIg5FRNwVPBxRH4P5V5bQvlP1lzyuWfbd/CO4ddfecO8EgDXvu+Pn5uRwfK2eL 0izi2QWq5u3pfO5QXs1753Skf5hKG45ixNc5zapS3ypbyr0vZotvGXrWZoMW5T9nUYKi SynNJZBmI1vP5bn/Dwc8Kw6WjPFPuC53tQH68oZ31c3s5eQ7PuO6SYIizUD1G4/W5NLd fBSw== X-Forwarded-Encrypted: i=1; AJvYcCXojQTuX758rtcH6d6XwdOvNo/liBmdEE4gMh1eHDfUFl5cisLpoIpimnjTyJ3siOuzR/JQDqKJ+heyJSQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzdhsY6UzCwCWR0p8/IFMqeL+7x9vZ1PsTtcT7bRnj+flFrWhFu SMf0XlpT3YMVjviPKZ8LA0dCba/7e2wPdpTPAz3vjNmRAa1rHUWFILTz X-Gm-Gg: AeBDievBIY0Vh6PXxwe8hnrW/snrUfo/HUDtgu2CY7bnzoZMkHyrk8uezJVojFopafT CS1BckhVgdVFLJwtyaIOqdO1VtYYMSXcCZkIGk5WohRQQIdzl2ygLMVWpiddjJ+RO4ivknBYVXG f+x3mEXMhliZ5xW+e5+dgQNvnOzvczilkhknvP5M6yi/t9lq63FNggndY5Uurs78QGYGvr6TWUv +YpNpWTNasnjCQkAHFam+vELa/y5HG3t4DFmepg0lOdGwhyQnzl97A0gRDHYZNtpYgdcLCAIyDt yIOu/KYOH7EFHyHKMjjUPRHj9GLH4gei8pjri9lV03SWDmk6DNgFaXV0FbxL/1i7HgAxmfzlsNS uzP/U7AbScbS67se7UDy825ytlCjNey75NU7hjJ1h7g66Uls4CuOuVZZseOSmYXnTl+1vvquYvt wAe0wZT44KwW84Ooj429iOs55pYVOHaaTA3vNo X-Received: by 2002:a17:903:1b50:b0:2b2:4df2:1e69 with SMTP id d9443c01a7336-2b269ab2ddcmr83266315ad.4.1775142881980; Thu, 02 Apr 2026 08:14:41 -0700 (PDT) Received: from junjungu-PC.localdomain ([223.167.147.240]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b27478b64csm35079155ad.30.2026.04.02.08.14.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 08:14:41 -0700 (PDT) From: Felix Gu Date: Thu, 02 Apr 2026 23:14:38 +0800 Subject: [PATCH v2] i3c: dw: Fix memory leak in dw_i3c_master_i3c_xfers() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260402-dw-i3c-2-v2-1-aa6c81d392da@gmail.com> X-B4-Tracking: v=1; b=H4sIAN2HzmkC/23MQQ6CMBCF4auQWTumnQKKK+9hWEA7hUkETGuqh nB3K2uX/8vLt0LkIBzhUqwQOEmUZc5BhwLs2M0Do7jcQIpqVSpC90IxFgnPXpNx7JumJ8j3R2A v7526tblHic8lfHY56d/6B0kaNfaVUc1J1VXJ9jpMndyPdpmg3bbtC+yOEY6gAAAA X-Change-ID: 20260402-dw-i3c-2-8f123def99b2 To: Alexandre Belloni , Frank Li , Aniket Cc: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, Felix Gu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775142880; l=2156; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=tkVOEMPd2UVvi7ufnqgFQQBx4xsxicEdqBqOqe29Zco=; b=XErUWn9qgG/pW/leCpGYJvSs7Q5dtfxKuSM6bAHAdwfUJoR1ZwYQHChU7j80buv2qHVnNUM5R jFin8KZ1sh0B3lNvytqWLe2cR537xeu7RDK9MXKpz6vOuaIXhlKyRdn X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= The dw_i3c_master_i3c_xfers() function allocates memory for the xfer structure using dw_i3c_master_alloc_xfer(). If pm_runtime_resume_and_get() fails, the function returns without freeing the allocated xfer, resulting in a memory leak. Use the __free(kfree) cleanup attribute to automatically free the memory when the variable goes out of scope. Fixes: 62fe9d06f570 ("i3c: dw: Add power management support") Signed-off-by: Felix Gu --- Changes in v2: - Switch to use __free(kfree) to automatically free the memory. - Link to v1: https://lore.kernel.org/r/20260402-dw-i3c-2-v1-1-b530970654ec= @gmail.com --- drivers/i3c/master/dw-i3c-master.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c= -master.c index d6bdb32397fb..2e31228b3809 100644 --- a/drivers/i3c/master/dw-i3c-master.c +++ b/drivers/i3c/master/dw-i3c-master.c @@ -7,6 +7,7 @@ =20 #include #include +#include #include #include #include @@ -924,7 +925,6 @@ static int dw_i3c_master_i3c_xfers(struct i3c_dev_desc = *dev, struct i3c_master_controller *m =3D i3c_dev_get_master(dev); struct dw_i3c_master *master =3D to_dw_i3c_master(m); unsigned int nrxwords =3D 0, ntxwords =3D 0; - struct dw_i3c_xfer *xfer; int i, ret =3D 0; =20 if (!i3c_nxfers) @@ -944,7 +944,7 @@ static int dw_i3c_master_i3c_xfers(struct i3c_dev_desc = *dev, nrxwords > master->caps.datafifodepth) return -EOPNOTSUPP; =20 - xfer =3D dw_i3c_master_alloc_xfer(master, i3c_nxfers); + struct dw_i3c_xfer *xfer __free(kfree) =3D dw_i3c_master_alloc_xfer(maste= r, i3c_nxfers); if (!xfer) return -ENOMEM; =20 @@ -995,7 +995,6 @@ static int dw_i3c_master_i3c_xfers(struct i3c_dev_desc = *dev, } =20 ret =3D xfer->ret; - dw_i3c_master_free_xfer(xfer); =20 pm_runtime_put_autosuspend(master->dev); return ret; --- base-commit: bd0f139e5fc11182777b81cefc3893ea508544ec change-id: 20260402-dw-i3c-2-8f123def99b2 Best regards, --=20 Felix Gu