From nobody Fri Aug 14 15:49:56 2026 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (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 5AC89470422 for ; Fri, 14 Aug 2026 13:40:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786714858; cv=none; b=MybxBo6KvsOAJSKg5HX3XsPbUXdicgK33tOXUolW0gcZZyZo3+JylmlDtSy+5hDOVIqCfts76QQGHXnP2IikmF62eoPMNIOGxSaZf06lm8GidURp2m9NsFzKa04mXbM4t0oo6BplpsG1zuzfQsGzLDx0hoC4W+14OCjxjww1jZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786714858; c=relaxed/simple; bh=bfr5UQ52z+ob0i0GfikTYdIoHwp78ufkfUxMioBpH2U=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=AxxuUnjCjM+aBnIDm71++KZoGu3oeQfdLZ9lmc1x9uXQ3a1ctiXVPVuDQJn+a6+PBdCg2Zu1Qpt0Ullrp8+ezSYjWwBY8A6pjyN8t/vNapt15uokHj4n7VWhp7tasdh7/GhiBIufe2N2EYbCM/oOdH1ArCGdX8BHPtTrSpO1u3s= 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=QxxkdqfP; arc=none smtp.client-ip=209.85.216.46 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="QxxkdqfP" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-38e3efab7e0so632757a91.0 for ; Fri, 14 Aug 2026 06:40:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786714853; x=1787319653; 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=7lYZe8NGu+MK4GxONcPyD0+PJYVMFmf3DLvaElNpb94=; b=QxxkdqfPH1Dhu+NOUkKRMI+xxSzflkL3dbtPRfju6AJ12RNeRD9eRMLJUTuj9U/43P 8gJDTCiyjugBj/zTTVK7m+VRfiXj1MoO95FhSePa3T5IFqphVeHn6O2WVOUXbde+KMv6 KwRuWBHgFCKBupqMWQK7icaahdAAliGpVuH1Kp3P5+jmyC40PKyvkApROwm1gTniGLzi qCNtFRRlyd/IJaS2c6CLCY//cbm6iy5xZ+NSoMeyHTpMsprb6o9kyDWDbfEYLj4FIDG3 orFrtmszWGy9eKkmQkX+11iSmm0g0Z5dAZpa0+tWwJe929ZJ+aRPA1Eik2Hmc3bJ5SN1 SCkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786714853; x=1787319653; 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=7lYZe8NGu+MK4GxONcPyD0+PJYVMFmf3DLvaElNpb94=; b=QYaiVrt2p26s5NCC6aD/WiMjL4GapOzb5dbnQbRyXo3uFXDkgnQ0/bEhHCLMGDwKbF wbwruEKlWKj2T62HomAF5eQ/jKtLZZS2Hw9vK6+3N3GocnpBwAhMn3agpR//I26zQo1K qHzXJ9xBsZDuaONJxskei3AY2dFKv87J9vGdpjQfPwrBx59jQD5C91+dPIxW5oRoA9xU 1+La/mWADCF3yg35nnbXFEHtHCSX1qDzj6HgGXSgrNJmNGhdyUfjmGnoMZ/0St0F5E7b YkuC+8XJunaFjeWH2W9eofaybI9H85uWrMQuH+n1OINzJUOlrzFP0b9owVHdxIB2ywVa O9Aw== X-Forwarded-Encrypted: i=1; AHgh+Ro/M9OX3RTIqxK05XUIVSEcw5MfFKmG4AjGBfHQP+4nO3yu5wYi20cS95uv+ARjQG1QicBc9hxQ3gJ5KJ0=@vger.kernel.org X-Gm-Message-State: AOJu0YykI6Mxj6cBzxoRdFaICj8ewXIlDWFpt/RughI0EpF+nFSyEI6+ mky+OldK2fVid8NvjbUm8tw1I7lRfxv/AnqKHWlhYOu+aZoC5UMMdxp/ X-Gm-Gg: AR+sD120+M3oNwAIMJSn9T4SwE0tE6WjBVcR9mcUiRvRNS0aSo8/c7JwmmaAEWRyz8Y 9txt75I83v76utDTrHiU5nTlH7bmPQXnCkos3Yl7b1HN4QrAKKu8X+6DXTxoubbBwfoCBianDs1 EbNOL9jaaP8nPvsdckNZ/5w0SgksHEDrjdy/dCjzRK0xmVzppKXpiOH7hU2p1LIHcZ0fZUzoeV0 rqwbpj7ALTlT6WGPubiXr19vSGPY6lC/f72vjcZIwWC718g9RnXpS0xuxjbzFCzxcQtryD15Uby yY1BPOZlZd8xxJPwHu9+YNrnb3iKH+VAc93u0gO67mGjgQqU1YQbEn2pKuiAVsZ/usALauHVQys yZnRj58JEYyb5JKKtrrRu24z1Oy4thLQX9VnWSqZ3iEfSNSMgxNkv5oWvnElbedHGTZdF/kXOZg J9EsSRbxwXDRgdr8v0kQ+Sq+AN+GpPAsrjdMIlMijgi0E7zLiXVVa5zGiBxplYWtkFb1gsF/Efc aLDfK6H X-Received: by 2002:a17:90b:4c48:b0:38e:b3fd:d584 with SMTP id 98e67ed59e1d1-3933b0d5cc6mr4319255a91.15.1786714853237; Fri, 14 Aug 2026 06:40:53 -0700 (PDT) Received: from haichao.tail057a43.ts.net ([2001:da8:e000:1206:e9af:7c0e:be31:2c3f]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-394ebb888d8sm2758886a91.12.2026.08.14.06.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 06:40:52 -0700 (PDT) From: Ruoyu Wang To: Alex Elder , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Ruoyu Wang Subject: [PATCH net] net: ipa: balance runtime PM reference on remove error Date: Fri, 14 Aug 2026 21:40:47 +0800 Message-ID: <20260814134047.1387177-1-ruoyuw560@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" ipa_remove() takes a runtime PM reference before accessing IPA hardware during teardown. If a concurrent modem start or stop keeps ipa_modem_stop() busy across both attempts, the callback intentionally returns without releasing the remaining resources because proceeding with teardown could crash. That return also skips the matching pm_runtime_put_noidle(), leaving the callback's usage-count reference held. Drop only this runtime PM reference before returning. pm_runtime_put_noidle() does not request an idle transition, so the hardware and resources retained on this exceptional path remain untouched while the usage count stays balanced. This issue was found by a static analysis checker and confirmed by manual source review. Fixes: 923a6b698447 ("net: ipa: get clock in ipa_probe()") Signed-off-by: Ruoyu Wang --- drivers/net/ipa/ipa_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 788dd99af2a4d..aab38fea91c61 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -975,6 +975,7 @@ static void ipa_remove(struct platform_device *pdev) */ dev_err(dev, "Failed to stop modem (%pe), leaking resources\n", ERR_PTR(ret)); + pm_runtime_put_noidle(dev); return; } =20 --=20 2.51.0