Auto-connect is not disabled when a device is removed. So in case the pairing is cancelled, the device is removed, but it stays in the kernel auto-connect list. This causes future advertisement from that device to trigger a pairing even if the user has already cancelled the pairing. This patch disables auto-connect on device remove. Signed-off-by: Manish Mandlik <mmandlik@xxxxxxxxxx> --- Changes in v2: - Disable auto-connect on device remove instead of pairing cancel as this is the main culprit of the issue. - Updated the title from "Disable auto-connect on cancel pair" to "Disable auto-connect on device remove" src/device.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/device.c b/src/device.c index df440ce09..8f73ce4d3 100644 --- a/src/device.c +++ b/src/device.c @@ -4447,6 +4447,11 @@ void device_remove(struct btd_device *device, gboolean remove_stored) { DBG("Removing device %s", device->path); + if (device->auto_connect) { + device->disable_auto_connect = TRUE; + device_set_auto_connect(device, FALSE); + } + if (device->bonding) { uint8_t status; -- 2.28.0.526.ge36021eeef-goog