The extra interface down/up is that wifi ether address is to be restored to initialized address during sleep, see below call path in network-manager:
real_hw_take_down/real_hw_take_up <-_set_hw_addr (self, priv->initial_hw_addr, "reset"); <-real_deactivate() /*wifi*/ <-nm_device_deactivate <-nm_device_take_down <-nm_device_state_changed <-nm_device_set_managed <-do_sleep_wake <-_internal_sleep <-_internal_sleep <-upower_sleeping_cb
So considered that the open/close cycle of wifi interface may take long time, maybe nm should be optimized for the situation(don't do it if ether address isn't changed) or just remove the resetting address for n7.
The extra interface down/up is that wifi ether address is to be restored to initialized address during sleep, see below
call path in network-manager:
real_hw_ take_down/ real_hw_ take_up hw_addr, "reset"); deactivate( ) /*wifi*/ device_ deactivate device_ take_down nm_device_ state_changed -nm_device_ set_managed
<-do_sleep_ wake
<-_internal_ sleep
<-_internal_ sleep
<-upower_ sleeping_ cb
<-_set_hw_addr (self, priv->initial_
<-real_
<-nm_
<-nm_
<-
<
So considered that the open/close cycle of wifi interface may take long time, maybe nm should be optimized
for the situation(don't do it if ether address isn't changed) or just remove the resetting address for n7.