From nobody Tue Sep 29 11:19:28 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (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 779EB377EA2 for ; Sat, 8 Aug 2026 05:29:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786166985; cv=none; b=hc9sHKYZX8Ark3thtHD/wmKTO7Tm6lZB1FOIdikEg5VDAjWEga8yFJtQkfp/XCKDMB48Srsdc41biKZqymHqJndlhPAEo0+R7NuWL+fSvQpzvTGQ8IoEJW0vZII6pDPJRjwwzaID5CVFJ5j5mW7mn4KUdX7et9EpAzVWhAQ3Ds0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786166985; c=relaxed/simple; bh=Q1wBHzLTIq4tK/+/Usog1Gd8RXUwm0ePB/TUbBnrev4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QKZTEx38tQN0ee3Cn1KB5nPTYhoJ8upd8QCDxpUAhnAAH3AncL+MOBm39YtVYw2a23h0J3QLRk/hVkH3IMZv60DuXUHme/euofZHZhW1qOy1zl7KhWqWbkblZxpc3uThPrQTiaY+SLKkifJugC98H+iE2HjEQB7Xq4GYTxsTSSg= 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=mUcLGWss; arc=none smtp.client-ip=209.85.216.44 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="mUcLGWss" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-38dd55ad76cso175598a91.1 for ; Fri, 07 Aug 2026 22:29:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786166984; x=1786771784; 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=wDC6YI5r3sz7/q8pUx056+kBWfhQJhpnlyWFVMa4m8E=; b=mUcLGWssKgoP7FgjhR+lC7JaDoRkDyfw1n/Dokxm4FVsn9o5p5GcGgwlepQXETqT6n oQmRWEDEIXv+oYHX1Atzlj4VKmPegAVP2Jh4COqvgIXJ7ENmhbdnRhV3DN52z2WlsVy3 ZcRfwpIXDwTNeC5CLMNt+vNqaAvj39DvUyMbwUk7PvaHDIfl92F6phAQpOQqmEXbGqPa /wnXUHnNYevkTVqX3mMzMlhx1UOKw5N2yf7PxnbCjtzQSuDs70r1O3c6aSekcI1tAdL6 BQMjIGiR37qiKwNQwx7rFsSBFBMSa4riRAr1P2EUVOeLbn28hiNZiu8SLmnLXo8Oh/pK bH+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786166984; x=1786771784; 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=wDC6YI5r3sz7/q8pUx056+kBWfhQJhpnlyWFVMa4m8E=; b=fkDyR/kqxoAsy7ddvozuyBUahHXO2RTF66C+JUHIR2Mu/WUdhGQrTpzuKnVJdxXvMH +ZxOSjMdp9RJdeHcB5idLO6DRMijiETKcSVNYl6nNxYf1SQO7PetEXEJlzQQwQAVq9+x kCtBuw+2CYYIHAyP9PBBlb2/3FKxdyaKjkpKrnRu4dLeAb8AI90vDwwWDDT9yMtnxJaq KOpB8H4C6sR6lhGW2fR49+CuKN8GPzc8ai2Ljw59ost3c12l3DX2w9uI9FWKd9VkIjSJ 1VeSOzW3ASe5ds/uoBKb1WeU67kLP+q02Un9w0nq7OxDwlO/WQIf9L6eFVOt7sG74Ra8 hP2A== X-Forwarded-Encrypted: i=1; AHgh+RoVbTEliCzAhOhnP3xxT5tTsHd/Q8lp6k4ljcdxtM+tXuAY50MdCBC0eRnD8K5brzxWlA3oRXG3ZKQqNGU=@vger.kernel.org X-Gm-Message-State: AOJu0YynDMCaTmiFNj+6iV2npQJi/R+03me+eigG6VRekqxa20xQfNPx y3zEPn5Jy7fQevUtRGFehq8mD8lZ7IuIYFMPSqK8Rmm9E5Wi2YXSwMXk X-Gm-Gg: AR+sD12EpK/ep5BOqqV95+L/HqtUw+AoRp8zNterRe6njAFPpETFktxQVfnsRPt6lCl oG3wcwW7+5v6E7dU5qf3t/rcunW1xRzVtjGQ7IlXcHzdrfLih/Ob9EzFuVAD8OGSjT8lzS82si9 wvMvgXPg+ewBeHcJyswkuYZmSejhj51O7xZLIg1tDgGF85EPbrIQVkduRWmNlo3GbRHnd8R4UW0 MJ5dHnx0SIyNcst8J87ZQk7q/4EyN8NUTYsc/ndbwbmlYd3YeltQNEZiu1vQvD9/a1/EWsxmKu0 xyAKr43hg9fv8AwYOgQFbljfnBfdmkQnYoKz9QbppqQjJpBcaG8Yf03s/7+r8Skxlap2JA1WDOA LyQqk50aJMpgLokVBtqaoGO7bwxCfmZtVyHHDx/Bce9dfaQQsNzyNjgMRH+RsP2twdAQgM8yobA e8Q/zEmNyyyu1r17UnszFAid6w9oed8hBHfJO6nMjeMqc= X-Received: by 2002:a17:90b:58a3:b0:385:3ab:fecb with SMTP id 98e67ed59e1d1-392845e2350mr991461a91.4.1786166983672; Fri, 07 Aug 2026 22:29:43 -0700 (PDT) Received: from lgs.. ([2001:250:5800:1000::f280]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-390b358a6c6sm1881112a91.3.2026.08.07.22.29.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 22:29:43 -0700 (PDT) From: Guangshuo Li To: Marcel Holtmann , Luiz Augusto von Dentz , Archie Pusaka , Abhishek Pandit-Subedi , Hilda Wu , linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] Bluetooth: hci_h5: fix usage_count leak when autosuspend_delay is negative Date: Sat, 8 Aug 2026 13:26:54 +0800 Message-ID: <20260808052655.2562268-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.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" h5_btrtl_open() calls pm_runtime_use_autosuspend(), but h5_btrtl_close() does not call the matching pm_runtime_dont_use_autosuspend() when tearing down runtime PM. If the autosuspend delay is set to a negative value while autosuspend is enabled, the runtime PM core increments usage_count to prevent runtime suspend. Without calling pm_runtime_dont_use_autosuspend() during driver teardown, this reference is not dropped and usage_count remains unbalanced. Add the missing pm_runtime_dont_use_autosuspend() call before disabling runtime PM. This issue was found by manual code inspection. Fixes: d9dd833cf6d2 ("Bluetooth: hci_h5: Add runtime suspend") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/bluetooth/hci_h5.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 93cdde981840..a5e7e9b0ea74 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -1023,8 +1023,10 @@ static void h5_btrtl_open(struct h5 *h5) =20 static void h5_btrtl_close(struct h5 *h5) { - if (!test_bit(H5_WAKEUP_DISABLE, &h5->flags)) + if (!test_bit(H5_WAKEUP_DISABLE, &h5->flags)) { + pm_runtime_dont_use_autosuspend(&h5->hu->serdev->dev); pm_runtime_disable(&h5->hu->serdev->dev); + } =20 gpiod_set_value_cansleep(h5->device_wake_gpio, 0); gpiod_set_value_cansleep(h5->enable_gpio, 0); --=20 2.43.0