From mboxrd@z Thu Jan 1 00:00:00 1970 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 7FB5B3B95E0 for ; Tue, 21 Apr 2026 11:25:01 +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=1776770702; cv=none; b=DWmHxZ1cBMWiDtp2IBWRl5djTjtYs59RrE3yhMXWQVSsLSdAK+HWxLFIwnwFGyHGM2hISDsylzeatNWXNJ0tRWCJJL2+tU8Eq45P8fWMRXndqsGeavA7iqSR3jDjbtSFuzEaWFPZ8J8v2TXkZNJWcbcQY1iusEZapkgzHuaBYFs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776770702; c=relaxed/simple; bh=CWxOjrPox5X0t2ux+PS1nC8+1GwG2oY37tSlwSN9J+c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=N/xC0Kh8BbemONoNNpI+ENHw405P3aBD54gX9ppXu7q32/FPdacba5WbtNFwiMaumugP4rIa841WkRWqc4zZ1kdosqRDPi3r7JICg+ZTwW69akIh5DKvdK8gZgLJcC4ykAaJBrMN3eVXuzuP8ck3+ANpue1QHE+y+Wfs7fskWh0= 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=LfAP+QNK; 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="LfAP+QNK" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-35f9ab079bdso2564733a91.2 for ; Tue, 21 Apr 2026 04:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776770701; x=1777375501; 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=gL/ODejSIDTzofKoBStX7l4wxG/3mI8CvPRp2FsgEmc=; b=LfAP+QNKKo05J6xcU9RwxYKR+ZSMoyfgKG7mOc8ZlxNXMEuM2SJsKbFYIxh0DO1A5Y RBkUIgloWSmX4Bv8/gxI8n2i3Ac8nkZeZUAXlranQ9oCaiNWFqtC9RCP8M5VtAxhU2bC 3hXAxPSGPx68naOykqkrX14/CMdtqYfXW4/pnP0kyupDNPPAuCtj7gWRXCfhbKVKcfSW oK2B035XGy+xwMivAnobLA+w8SQwuYv0LipKi2fjmgAz+7Tsa2g53FYOmTdNhy+SbXq8 DdJ1xoY4neYKpOGA8Rx6vfbc4mE+aWISD5uS/m76vJWppotPwK5gJyI3poK2UpAtTYGu VPtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776770701; x=1777375501; 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=gL/ODejSIDTzofKoBStX7l4wxG/3mI8CvPRp2FsgEmc=; b=VHQqz/WS0XAlKg/0NnM7RciR3w9vA98FmvzBhwuqpeVSm+Gdi3yu2zZ8FN8Mv5tEfL 8ajkiQhYtJdUa6ATffydJUPX0O6JC/c0A/JtjrMttTpw1xvga2IBrfs+e2hOw4beUmvT nkGpKKUKqvVkYJEjgrps2EK7B+OlPm9BUjOd5SEUsGe7ZeBz2o2YsQ0LUQ/pfvn6v3Cx 9SLXOYmyZ8+PnyL7JUgE7dEO1Tet29QY2NCEISBmnhbtnecJs75V9ITks68lmYg2/KNM KdvLQBsQ+X591rbMtRnPWQQX6TjKQvXVnYAcgIu4+eKXrFEYfzqgGhVOgWsAiQSwIfah 6BrQ== X-Forwarded-Encrypted: i=1; AFNElJ/1OyMbUQJUSRk3jGcbIbo9Tb51Re7YEXg7mPf35qpC8tYQy7znrjcNGau0zEIhEKkJAqwqjJCeutH0WvU=@vger.kernel.org X-Gm-Message-State: AOJu0Yz442wlIlHozNLJO+Fuj5AO6EgH7jll36cQ1l0MsdOamsphAAuE wA2zcmNv/HKHr6s1ng4MRbD1A1Geq4YEZF3LJIWkIFJgEdkCHNbmf/+Pgc9kzR10 X-Gm-Gg: AeBDiesPK//RZIoe66NYcI6+HsXU07ooTUqbYmQRRd040meAaU48Vt9xfxcOSWj9+y4 FOykCaZQie3bdA3OisxK8zPgUMYfv08l0h9un7kCngv/hpoKPoT07oGV4wWXi1HYKe1wBJ0pXwQ NeUz/rY6NVGnevmEKJL8MJ4jpBY0ZEe6/cDMDEaBWi3ho/8a+mqKTMu0gYiHSXaEIoGsxePv/iS 4D1Cv+ft9yvycO1UCSI8eaQDrb8W/XF43KahSNlg2Cm1CWCdSv1tswt7vPrDJfRxXLDroPGZj26 /TTsz9HFHB8X5enPsSjcR+j6IwGPdeebMm3Kwzsc9wws78NbEhvO2VpR9XME/hCJ3BNW1RYh2jQ hdRNi1hQ8tlD2jctECGJsaTjSe9+9ljOxttX9FPUJdAMJ6oKMg3wpBpxRyP1dairEiC85TelsGN 8ASAgTIRiLi2cAFTMFeRZrff8O67LMspE7Y21NoTCUI77pdhec3XBNQdQmr+eFArg5evA8JbRic VgC0vCAABxZ5vttTNI0d++yiSKEFnw= X-Received: by 2002:a17:90b:4ecc:b0:35b:e553:9cc2 with SMTP id 98e67ed59e1d1-361404b9802mr17074367a91.26.1776770700393; Tue, 21 Apr 2026 04:25:00 -0700 (PDT) Received: from junjungu-PC.localdomain ([223.167.147.125]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3613fb4b4b5sm7272732a91.3.2026.04.21.04.24.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2026 04:24:59 -0700 (PDT) From: Felix Gu Date: Tue, 21 Apr 2026 19:24:56 +0800 Subject: [PATCH] usb: typec: fusb302: Fix resource leak when devm_drm_dp_hpd_bridge_add() fails 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: 7bit Message-Id: <20260421-fusb-v1-1-0a9dd64e785b@gmail.com> X-B4-Tracking: v=1; b=H4sIAIde52kC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDEyND3bTS4iRdg1RzAwvT5FQTY8NEJaDSgqLUtMwKsDHRsbW1AJ4D4vZ WAAAA X-Change-ID: 20260421-fusb-0e7085ce431a To: Heikki Krogerus , Greg Kroah-Hartman , Sebastian Reichel Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Felix Gu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776770697; l=1362; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=CWxOjrPox5X0t2ux+PS1nC8+1GwG2oY37tSlwSN9J+c=; b=2sp2DginR8fnX2lA64kpvRPbJuaRWXNTfJ0OPuQQ/Fk0sehX3v+rwF+2jcDwspgNEkHis+egI zBnn6SSyFy0COOBLqEZEtjXrfKASfEXQ9igRQ/x39PopRvBnil7nL+Q X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= If devm_drm_dp_hpd_bridge_add() fails during fusb302_probe(), the original code returned directly without cleaning up the resources. Route the failure through the existing unwind path so probe cleans up the same resources that are released in remove(). Fixes: 5d79c525405d ("usb: typec: fusb302: add DRM DP HPD bridge support") Signed-off-by: Felix Gu --- drivers/usb/typec/tcpm/fusb302.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c index 889c4c29c1b8..5b631422c128 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1776,10 +1776,15 @@ static int fusb302_probe(struct i2c_client *client) ret = devm_drm_dp_hpd_bridge_add(chip->dev, bridge_dev); if (ret) - return ret; + goto free_irq; - return ret; + return 0; +free_irq: + disable_irq_wake(chip->gpio_int_n_irq); + free_irq(chip->gpio_int_n_irq, chip); + cancel_work_sync(&chip->irq_work); + cancel_delayed_work_sync(&chip->bc_lvl_handler); tcpm_unregister_port: tcpm_unregister_port(chip->tcpm_port); fwnode_handle_put(chip->tcpc_dev.fwnode); --- base-commit: 97e797263a5e963da3d1e66e743fd518567dfe37 change-id: 20260421-fusb-0e7085ce431a Best regards, -- Felix Gu