]> git.neil.brown.name Git - history.git/commitdiff
[netdrvr airo] safer unload code
authorJavier Achirica <achirica@telefonica.net>
Thu, 7 Aug 2003 14:29:15 +0000 (10:29 -0400)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 7 Aug 2003 14:29:15 +0000 (10:29 -0400)
drivers/net/wireless/airo.c

index b760a5d6574b1fafb3d0903dbb48fe54ee63f203..184349ffe9596eea8f112fdcbf0ff5a60b8a47c5 100644 (file)
@@ -1608,13 +1608,10 @@ static void del_airo_dev( struct net_device *dev );
 void stop_airo_card( struct net_device *dev, int freeres )
 {
        struct airo_info *ai = dev->priv;
-       flush_scheduled_work();
        disable_interrupts(ai);
        free_irq( dev->irq, dev );
-       if (ai->flash)
-               kfree(ai->flash);
-       if (ai->rssi)
-               kfree(ai->rssi);
+       if (auto_wep)
+               del_timer_sync(&ai->timer);
        takedown_proc_entry( dev, ai );
        if (ai->registered) {
                unregister_netdev( dev );
@@ -1625,7 +1622,11 @@ void stop_airo_card( struct net_device *dev, int freeres )
                }
                ai->registered = 0;
        }
-       if (auto_wep) del_timer_sync(&ai->timer);
+       flush_scheduled_work();
+       if (ai->flash)
+               kfree(ai->flash);
+       if (ai->rssi)
+               kfree(ai->rssi);
        if (freeres) {
                /* PCMCIA frees this stuff, so only for PCI and ISA */
                release_region( dev->base_addr, 64 );