From nobody Tue Sep 29 13:20:17 2026 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 051DC372EF5 for ; Fri, 7 Aug 2026 15:15:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786115712; cv=none; b=KegWXpugZwlX+XXr+LqO95sJV2byxYtT7+sjU0c3heHFsBdrPzXTOVBWJ8Nl2ekUgDz8Q/7BQqpiLuHMkI9JtbpG1n3uli9i5EY0KVUVtuJ6hsDyz8nrASB5DI8dTlldIzzlM6ZTKS2V55wnVTlo4jK/54ikqKrRZJi55TDTG1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786115712; c=relaxed/simple; bh=4TgRja3T20fk4mqkpC+utYixmpcSGpXi3NTzY7Ze7hc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=AyrjptX0uZDELRaWSvvsBQ5CHTYyk23yt2A0zUSthT267ahVnIWhhADLBipilKIPZALW29yqYHU0DlAYRS+GungkLJzvDWR4SSiDFuaqnEnNwhuPVTYGRmatrmy7wRKFC04qszUE2QL+VFCLx1smhD0RQH1+15Glg4v4ghi/0CI= 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=iWpxIaY1; arc=none smtp.client-ip=209.85.214.174 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="iWpxIaY1" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2cacf197759so55242105ad.2 for ; Fri, 07 Aug 2026 08:15:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786115710; x=1786720510; 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=oYD8vxjOHGuQyZYPR9PahIsl2VjFcOZPUXc7tvdpKVw=; b=iWpxIaY16CKpsWIDDgGqC9gEHRs1BbZDWfyMhFtAiraGfVlbJnQ2Yk4ypl5acwZdo8 zkeNtBlvX2cV01dx1MBL+IWi2i+RLJpaZb8UvKa9n12tn7ZvEU9+MYBVdTFUn/Y/Z0vp rx4KEnU26csSi6HbtOc2GcRCyMW/Is5kAbOX3xYdfqoNBH/tIBrSubkn+4gqlmkC1ZCO 0J7wkSBsE3FVa+VgbpMcN0zehXsMvOWC19un4ISBNTuAgGRhFE+hcErGhXkLCo2r9oK6 w2PHapOD0zBeiWh/BV26KZLS8p6rfAE7oAkqGKx1OQVZVZXhmtrnJIeHP5Og0ubiqVN6 ye3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786115710; x=1786720510; 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=oYD8vxjOHGuQyZYPR9PahIsl2VjFcOZPUXc7tvdpKVw=; b=cUKEJ08dLuoQ4qajouDc23QywP1cFay/sZYh1yBw+cJQTHAAeO3powQQGkZXLrOZr8 XUscHskYPq4HhAS39we9QjlvLb1wsYkCTBt1LV6l8QpGu2fGURbAZneg+7s9UXJ+BW5j tXqJ+hSo6FmHIZi6iZqIAYjy/4Y/5J3cRd9xPzPylVqfLfVIWBdF2XTz+jcpboRoqNAT xGO9lZW9TgXqcpa3tfOPn5nJM/u9x0xUFCJE3lbIr3QWeZkUnPnvL0xVESEc4MbP9DbW CBHEPrWskQFeDREr0aG3z7nX5ME5CREEKjIHGbeDNqf1c3eOTnWJ+5hgsEGt2O3bJs71 SOyQ== X-Forwarded-Encrypted: i=1; AHgh+Rp/VYIr3l3vt41Y+djp/jXdvijvQ4oBtXO3n3+SYETc82B67K9SME32pcT8xLe8QGHC/TXKyRFaxC3+hJY=@vger.kernel.org X-Gm-Message-State: AOJu0YygVm0fcsO36oktDoqH9EcCgJwV4hb5VlX64l8RFzT7FPE8HvmP 001TihUqdyushOh/9mCMgxcjtQzdzYEd65A8vvA84cwXvEeHkU8hTlnC X-Gm-Gg: AR+sD12DwkiHv4E/4YOYuGT/17ELz4yTUvUwF1xNoggt7BI5ZWWSYSxRmTUfHLENzHF zvbsmPUgTA9DIvgY5Q6t0KqqbPEoQZz59yWMQgOCZXngkeeCjF4+KALxEaKtdieUsLd8FS0Ik6F J2E5KhPYG9RsEK4KxRLw+ZwSnnN8ADf8GY2DVHVRw8NpqLRYKlLiGAHLRFQHAaSGctu7SkAMMwl wVLNO0WhyzvbmQrjInC+gk7rbC15BeCLtIyOnIqdcyND2tl5zbDVavPkERyGOdK3eHfwppHm5cL Bw9D+27GfB3TmW226hrMC6PRQn8xtlG70n3YCwbO7J82uwpbcKObbAzhaIIk9bAst0eHwD+lEKF ZGlPll9ZDzzyfKiXW99WfRRnNWqQbhfIGunuOCEOIaUfTUMStaxjrSNkxgU7qOn1Zd+1o3NOHsg De2LuWbBrTMzjLrpM6aXSSwMp62s3ZEWuVMkAJ7LkS9qFjxBRMtxQvyXd5nA== X-Received: by 2002:a17:902:ce0e:b0:2d0:cc92:f7b2 with SMTP id d9443c01a7336-2d294b293d0mr61010985ad.1.1786115710098; Fri, 07 Aug 2026 08:15:10 -0700 (PDT) Received: from lgs.. ([101.76.249.46]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d14ccabdf5sm10829965ad.14.2026.08.07.08.15.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:15:09 -0700 (PDT) From: Guangshuo Li To: Marcel Holtmann , Luiz Augusto von Dentz , Matthias Brugger , AngeloGioacchino Del Regno , Sean Wang , linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Guangshuo Li Subject: [PATCH] Bluetooth: btmtksdio: fix usage_count leak when autosuspend_delay is negative Date: Fri, 7 Aug 2026 23:14:47 +0800 Message-ID: <20260807151447.2530075-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" btmtksdio_setup() calls pm_runtime_use_autosuspend() when runtime PM is supported, but btmtksdio_remove() does not call the matching pm_runtime_dont_use_autosuspend() when removing the device. 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 in the remove path before restoring the runtime PM usage reference. This issue was found by manual code inspection. Fixes: 7f3c563c575e ("Bluetooth: btmtksdio: Add runtime PM support to SDIO = based Bluetooth") Signed-off-by: Guangshuo Li --- drivers/bluetooth/btmtksdio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c index c6f80c419e90..4e1012e90979 100644 --- a/drivers/bluetooth/btmtksdio.c +++ b/drivers/bluetooth/btmtksdio.c @@ -1480,6 +1480,9 @@ static void btmtksdio_remove(struct sdio_func *func) if (test_bit(BTMTKSDIO_FUNC_ENABLED, &bdev->tx_state)) btmtksdio_close(hdev); =20 + if (bdev->data->pm_runtime_supported) + pm_runtime_dont_use_autosuspend(bdev->dev); + /* Be consistent the state in btmtksdio_probe */ pm_runtime_get_noresume(bdev->dev); =20 --=20 2.43.0