@@ -539,6 +539,7 @@ int mt76_register_phy(struct mt76_phy *phy, bool vht,
539
539
if (ret )
540
540
return ret ;
541
541
542
+ set_bit (MT76_STATE_REGISTERED , & phy -> state );
542
543
phy -> dev -> phys [phy -> band_idx ] = phy ;
543
544
544
545
return 0 ;
@@ -549,6 +550,9 @@ void mt76_unregister_phy(struct mt76_phy *phy)
549
550
{
550
551
struct mt76_dev * dev = phy -> dev ;
551
552
553
+ if (!test_bit (MT76_STATE_REGISTERED , & phy -> state ))
554
+ return ;
555
+
552
556
if (IS_ENABLED (CONFIG_MT76_LEDS ))
553
557
mt76_led_cleanup (phy );
554
558
mt76_tx_status_check (dev , true);
@@ -719,6 +723,7 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
719
723
return ret ;
720
724
721
725
WARN_ON (mt76_worker_setup (hw , & dev -> tx_worker , NULL , "tx" ));
726
+ set_bit (MT76_STATE_REGISTERED , & phy -> state );
722
727
sched_set_fifo_low (dev -> tx_worker .task );
723
728
724
729
return 0 ;
@@ -729,6 +734,9 @@ void mt76_unregister_device(struct mt76_dev *dev)
729
734
{
730
735
struct ieee80211_hw * hw = dev -> hw ;
731
736
737
+ if (!test_bit (MT76_STATE_REGISTERED , & dev -> phy .state ))
738
+ return ;
739
+
732
740
if (IS_ENABLED (CONFIG_MT76_LEDS ))
733
741
mt76_led_cleanup (& dev -> phy );
734
742
mt76_tx_status_check (dev , true);
0 commit comments