From fb874e6cda2ca332d692225d77325354435dfc6c 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'): (cherry picked from commit a5ca504b5be77ef1fefbb6e8d159377e2b7bbe68) --- 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 0853c926a7..f8626011f0 100644 --- a/src/devices/bluetooth/nm-device-bt.c +++ b/src/devices/bluetooth/nm-device-bt.c @@ -550,6 +550,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,