From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) (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 1A428472544 for ; Tue, 4 Aug 2026 14:05:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785852317; cv=none; b=QXXEPA1F66o86CyYGFDxzz3Pz5HrS+dUC5gbnl4otR9SZ+Y3T+/9zZt1Fdr9cRn5NCUQaje1JCM/VNPoeBzXCwplfq2WttvzFzqaMGPSpSGw6T0bADcCuB9bntqrQb8UtjQUY7pm4cOTIdVCR1PLYx5MGVjKrhdWLMaC5KLaKdM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785852317; c=relaxed/simple; bh=d97IpNyJsYB5IVGgs4Li0wWu0NiI/7JE9bvfPe1TDcA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Dn1Gzfqr5S2olOmFxclWLy+O3KhLXk3IBVZfkoKj7KOgzbiSWyMfNniaxKNRKBOO4houVqbDHZlggGCnnh/vKwPzhUZToorM7af+RPNK2+KGEv7k77h4S1IwCq89BqL3WVC0fzZrmzDeZx2SVWRcFWTl7+8LriNJqSHJDkdsEE4= 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=Jf6pF4kc; arc=none smtp.client-ip=209.85.215.175 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="Jf6pF4kc" Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-ca80d708489so750354a12.1 for ; Tue, 04 Aug 2026 07:05:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785852315; x=1786457115; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=di7yb5nKkAVEK5laxIrEVUkFWbaRV9fl/4mdiWB8KDc=; b=Jf6pF4kcmxr0Y2UHFL2AhprTlMLaAhkMwtvnILk4rIrrweAQHjrFL7Lsqj/r3nURLf VZkQ1Iork3a2NF3dbAI5Akv1JP7dM84al8nlW7KDEzqWDX4FjQZA2b+mlHyffGWrmhLe u/H8svpyUGKo9McqVG7fMszLBz3b0UQxZV5dWVfP0jPaCHE6Usl1R/Cbpo85WtJRUeYj smAiipjvDvfJok0sAUbKqAWvd6tT+AlE//5DpqLpufiSQV5HO5uwFcfE/Ac56XZjihP3 yyfv+SF+W1CG3J+rbxqBixDM+xwWrDBklguy52pPK1c2v9G23OVxhrebTXCSI/wQBXoL b9iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785852315; x=1786457115; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=di7yb5nKkAVEK5laxIrEVUkFWbaRV9fl/4mdiWB8KDc=; b=JhowctZ2Q4neM97ZGjAOIMBhgLWbXuND2Ryty9Vu7ugqj9qfIxg65iJP+4+1mwAaBj oNoC5wJvQFP48yDjBBsAuUhUWNaEIJz4HSJySyUR0GUZej/QRU34/Q/DzfbsecFI9QBh NUahFeSx5JzA/K9h4yEcPvnaWe/L4LdzG2RiLjqNTiZ9URcpoUvNgEyMHc9uFfB172KR t0wxvA8M/uDVNq11vTG9RvZoDWadu3UvLLQaKriF1hBULcErnCSAZioGAl0iqOa/fS+3 RlnU6ebrmhD2uOLPNWML84K1iGaWc36Txi8qALZGVpWtxiPdXwfWbi+MsvWoS0n0gaRy THFg== X-Forwarded-Encrypted: i=1; AHgh+Rowcl77n7VyVKS8Rf/1Kdmsxn+lSmE/fAoXRy4Q4NqNl/gFjb+g6G3gOdMIjm627isM3fFEQi1JVDDkEkU=@vger.kernel.org X-Gm-Message-State: AOJu0YzDuT/EVdUVcPhFBU25oGY4jnh6VPUhhSmybm9YZ/Qh3eTkatK1 urVAiFlIaAt16zmcSvrPFPMtXnYkyIiEMxiR44oi66tVyCvsYLSGde4= X-Gm-Gg: AR+sD10qYEJGUE2F77UObAd67Lr0lSPK8hFfKINukpo7r27V5xPl8OHew94cxrnZHvM SXNlbcw68UWKNcyQ0+MjnL5RUMJn3jXqkxpzMu1o6d/yOEes0cSlOWARqTY33hQ39eWz3QgXsgF nosedsOLfAmwLkk8wMjcZGnoHVm1bR0bdWcTQa2Qzx5LJ4OAWTpcJ5HTA2PF1QLr+ftry5TtsRW bRDCjkT6fJEFahl8OTP3LlvQtPwB03Yvd4PZc7WpDxreqw3GVpNtooXZw9K5CqqbalNVJS0kwiO qIjA5RD+ZmjXSS65wiBjfCBA2ls1OUO2Cz0VW2M8GUrd6m4gyvqDXnlie4lDNQGDPO64U6nP+Jg EEsfOxMN/Grcrts+dKMq84Wiy6w3Uxq8OGh7ucPVfI5UKmJIF9JPuF9ClYIi5mQwq/Maw1LHRu8 3aTrhW4w1eUiw7G5RodkiQoCjZKS1oy95XWR89drbkwLblcSMBMWeMq6T5ZuwlbbhPK5HAcN6ax hydGDRXBUrCz2TDNx2UvSkKInKns6UZmZUncSpXqPzmmRx7dfw2tzC0iF0k/Dcyu1nx2LAFOWNm Bfzz8AIfMy0fDSIAF2eXYBZl X-Received: by 2002:a05:6a20:a11b:b0:3bf:ee42:192 with SMTP id adf61e73a8af0-3cb6c773de9mr3807571637.6.1785852315187; Tue, 04 Aug 2026 07:05:15 -0700 (PDT) Received: from localhost.localdomain ([1.226.165.54]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cbe3963daa7sm5097183a12.5.2026.08.04.07.05.12 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Aug 2026 07:05:14 -0700 (PDT) From: Myeonghun Pak To: Greg Kroah-Hartman Cc: Felipe Balbi , Raviteja Garimella , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH] usb: gadget: snps_udc_plat: clean up PHY on probe deferral Date: Tue, 4 Aug 2026 23:05:10 +0900 Message-ID: <20260804140510.37639-1-mhun512@gmail.com> X-Mailer: git-send-email 2.47.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit When the referenced extcon device has not registered yet, extcon_get_edev_by_phandle() returns -EPROBE_DEFER after the driver has initialized and powered on the PHY. The direct return bypasses the common cleanup path and leaves both operations unbalanced. Store the lookup error first and route deferred probing through exit_phy, while retaining the existing behavior of suppressing the error message for deferral. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Fixes: 1b9f35adb0ff ("usb: gadget: udc: Add Synopsys UDC Platform driver") Cc: stable@vger.kernel.org Signed-off-by: Ijae Kim Signed-off-by: Myeonghun Pak --- drivers/usb/gadget/udc/snps_udc_plat.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/udc/snps_udc_plat.c b/drivers/usb/gadget/udc/snps_udc_plat.c index db842a6de643..0ee3ed185d9c 100644 --- a/drivers/usb/gadget/udc/snps_udc_plat.c +++ b/drivers/usb/gadget/udc/snps_udc_plat.c @@ -159,10 +159,9 @@ static int udc_plat_probe(struct platform_device *pdev) if (of_property_present(dev->of_node, "extcon")) { udc->edev = extcon_get_edev_by_phandle(dev, 0); if (IS_ERR(udc->edev)) { - if (PTR_ERR(udc->edev) == -EPROBE_DEFER) - return -EPROBE_DEFER; - dev_err(dev, "Invalid or missing extcon\n"); ret = PTR_ERR(udc->edev); + if (ret != -EPROBE_DEFER) + dev_err(dev, "Invalid or missing extcon\n"); goto exit_phy; } -- 2.47.1