From a5ca504b5be77ef1fefbb6e8d159377e2b7bbe68 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Wed, 2 Oct 2019 10:35:04 +0200 Subject: [PATCH] bluetooth: don't set the ifindex after the device has been activated The Bluetooth DUN device's NMModem would signal the reset of ifindex to zero when it's disconnected and the NMDeviceBt would accordingly update the bluetooth device's ip ifindex. This is not okay since commit ab4578302d69 ('device: refactor nm_device_set_ip_ifindex() and set_ip_iface()') which, although claiming to be a refactoring, made such use of nm_device_set_ip_ifindex() illegal. Resetting the ifindex is anyway not necessary, since it's taken care of _cleanup_generic_post(). Let's leave the ifindex alone once the device is activated, in a manner analogous to what NMDeviceModem. Fixes: ab4578302d69 ('device: refactor nm_device_set_ip_ifindex() and set_ip_iface()') Fixes: 78ca2a70c719 ('device: don't set invalid ip-iface'): --- src/devices/bluetooth/nm-device-bt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/devices/bluetooth/nm-device-bt.c b/src/devices/bluetooth/nm-device-bt.c index 774862f9fb..497810c36f 100644 --- a/src/devices/bluetooth/nm-device-bt.c +++ b/src/devices/bluetooth/nm-device-bt.c @@ -571,6 +571,9 @@ ip_ifindex_changed_cb (NMModem *modem, GParamSpec *pspec, gpointer user_data) { NMDevice *device = NM_DEVICE (user_data); + if (!nm_device_is_activating (device)) + return; + if (!nm_device_set_ip_ifindex (device, nm_modem_get_ip_ifindex (modem))) { nm_device_state_changed (device,