From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 275E93E00A3 for ; Fri, 26 Jun 2026 08:55:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782464121; cv=none; b=kb37W2pLmo4h+0sXSPg9gQPyNbZZPzEMunnfX6CCbabmLKC7DNxA2l+7sWqwlmYqTBfuEe6APpa1Ajgrab4iGe0yA1xEeDT1vu/eRbTWG2BUf1s2wIpDwBBpinwUgsLaOKn/gUk+Qwwy7Py/MutOC3KFpsz7XQPbwTS34w/eDLo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782464121; c=relaxed/simple; bh=Sv1k2GLnPHQVqcDj/5WdcJdGbcOVWFX0XIVLHb+n3YQ=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=R7M7zThRJLxU/kKXnVNjk2+0cXdGgzFa/sKziol9mgXj5KE5iuCC4YN5JeSuXfhD8ICjfKfBXD5/e9eNEizUpdF6vALL9XnqRQU+fDnDIiM7/E8oTZ6O1Zd2u9yMDAlBOERnEIcEz66XQje8CopuAu6yMGqwkv14EXVQojF9KE0= 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=Mw7AGt1E; arc=none smtp.client-ip=209.85.214.179 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="Mw7AGt1E" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2c7f123b1acso9177475ad.0 for ; Fri, 26 Jun 2026 01:55:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782464119; x=1783068919; 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; bh=H0bENK6HErqfKBzvbZN9XyWCD6ZqRSHH4z7WXCI1P4c=; b=Mw7AGt1EEEb3dXYyVTNkN2WFlGSxoWAHEU+OF97doWxamDYRcdZHFTe3J6j1AaLzvU cnd++RsRhuWyJLsjxXUnS3RKG+frVjYsqbzqol25EAmmD/3qXt96RzFwj1roLhbdW/Av h/enrE2XCdX44QiD/ho58Ihq2DSslLVlW4CQt4akW5lcGWBKqYjqRNXV9/1mxH0HO22P 7tGCYPNQw1JlsZ6hDGDy/s2tjE1VCBwlxfr9miClP/3oAOqn4qfzyPBZWHy0fyON9cIL xCznR657ePgKxS2zj23zaQpjuQYk8JkS3R7dNohRiHMlauoOnuPgXhMrWzvAmwh5pZ+A 0o4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782464119; x=1783068919; 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; bh=H0bENK6HErqfKBzvbZN9XyWCD6ZqRSHH4z7WXCI1P4c=; b=etj5SMKU1PYMoncoUILILY07IPU8EBBl33b+3ZfY07FNWGEfjwwyNgPlWS7MXrI3cE F2/EVyT0GAJJr4XToEJTRVm4NNc8kwc9xfhke4bXJa/1OvWgfKt35dHGQ9zWZxErkqva dcKMX/IKTRqaelgv7mWKpP6qj8fyaIKS772bZz4Masx4HY/BZiTg12Ym0LE+IYOY0MpV KoZYo3FcTIu6P0OCloGcgpSwHoClW7HNiaxekDamtS1QDCn8CVZKCQY50vEysQY3JFo9 UggDNwhJHYUfIhcTzQRRQULnLr52yx9U8gEKhcltmO4Xs1E8k4P5w+AaSvvfv2Upkp4B Sgvg== X-Forwarded-Encrypted: i=1; AHgh+RrWe77EtvXShOLsU1LI3N+UhsclDX3Q6mEj8K3JOw4BhX/TrrhQ6WFJM4U8xHPGO4XgdYyZO/bpr0Hd2C0=@vger.kernel.org X-Gm-Message-State: AOJu0YwDZIcT7cRO4r5A1YG/FNnII/k8r2Y63POUSKH3GBH8LyKFU4Dz Bcx5QvgudUd2zqyOgGlYpkwdtOG78zzFZ9ntthWTPNI5eU2k6EMcxyc= X-Gm-Gg: AfdE7ck9Xkg0NY50KjRjh37KpoS/dlRsc0O4taU+QAo+VR0jVr9+z0FoLOOocd1qui/ NZeurCMqkB8W0Vh9pxVN89uLNnQrLfvynVFDN85GCL2FIt+6pmPZOM8xiPHZmGfZRB99jwKIO3v z1liqOsU4iiPMRJwrNyCHmA3YzHBSqMxtSBvZqrtRRZWYTQEoaNszjqyVP7wIbak4sCn/OsAApp Y18y1DISpe+tzPjPox585sKnHYT81eBNQKw/x85Y3fEmPUo2yjd0gHvj1U65bZiMI7sgAnyPJ6D Yky0mseVblnT54Je/rylPe2GBobbCu3zU4Ol0SlYW90FifC6TJf5fS0E7eRDh93KoIe9khByaFs gJK/+wjNIORf//HlGgu6AmsUs0YA6/Xpt7jq3dwyhtWfx/SWDSp8U3WtZewvAnKMlu/pJ+22ZLs Vsa9s0+XEMgzXMuLGOEdXXxvU///0JHkH1TeJ4K49UklM10AVIaccBZIwTte5VjIs6 X-Received: by 2002:a17:903:3b88:b0:2c6:9d3d:dfbd with SMTP id d9443c01a7336-2c7fc6785b1mr61871445ad.16.1782464119323; Fri, 26 Jun 2026 01:55:19 -0700 (PDT) Received: from localhost.localdomain ([14.5.152.27]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7f63b27e9sm35520725ad.49.2026.06.26.01.55.15 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 26 Jun 2026 01:55:18 -0700 (PDT) From: Myeonghun Pak To: Amitkumar Karwar , Neeraj Kale , Marcel Holtmann , Luiz Augusto von Dentz Cc: linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, Myeonghun Pak , Ijae Kim Subject: [PATCH] Bluetooth: btnxpuart: unregister HCI device on probe failure Date: Fri, 26 Jun 2026 17:55:06 +0900 Message-Id: <20260626085506.37500-1-mhun512@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit If hci_register_dev() succeeds but ps_setup() fails, nxp_serdev_probe() jumps to probe_fail and frees the HCI device without first unregistering it. The remove path unregisters the HCI device before freeing it, and the probe error path needs the same ordering once registration has succeeded. Send failures after successful registration through a new label that calls hci_unregister_dev(), then fall through to the existing reset and free cleanup. Keep hci_register_dev() failures on the original path because the device was not registered in that case. Fixes: 689ca16e5232 ("Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets") Co-developed-by: Ijae Kim Signed-off-by: Ijae Kim Signed-off-by: Myeonghun Pak --- drivers/bluetooth/btnxpuart.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/btnxpuart.c b/drivers/bluetooth/btnxpuart.c index e7036a48ce..6778b883ab 100644 --- a/drivers/bluetooth/btnxpuart.c +++ b/drivers/bluetooth/btnxpuart.c @@ -1907,13 +1907,15 @@ static int nxp_serdev_probe(struct serdev_device *serdev) } if (ps_setup(hdev)) - goto probe_fail; + goto unregister_dev; hci_devcd_register(hdev, nxp_coredump, nxp_coredump_hdr, nxp_coredump_notify); return 0; +unregister_dev: + hci_unregister_dev(hdev); probe_fail: reset_control_assert(nxpdev->pdn); hci_free_dev(hdev); -- 2.53.0