diff --git a/CHANGES b/CHANGES index b9dcd74..39d2b36 100644 --- a/CHANGES +++ b/CHANGES @@ -42,6 +42,7 @@ * * -------------------------------------------------------------------- -pre12 + - More tweaks for 2.6.0-test4 - fix some bash-isms in /etc/wlan/shared (Daniel Song) - Collapsed the BOUNDEDINT and INT types into one. - Eliminated the WLAN_LOG_***0() macros at long last thanks to CPP diff --git a/TODO b/TODO index 4d10b53..57ac976 100644 --- a/TODO +++ b/TODO @@ -47,20 +47,13 @@ Linux WLAN NG TODO - Possibly hook up DMA on the Rx side for PCI devices - [USB] Remove driver's port-reset when new primary firmware becomes available. -- [USB] Look into multiple posted URBs - Review changes necessary for static linking to kernel -- Update MAC RID to 802.11 MIB mapping document -- Update MAC feature to 802.11 mapping document - Display the MAC and BBP partnum & revision at initialization time - Perform a more effective I/O access test and an irq test at initialization time - Detect dead card and perform reset and reinitialization -- X-Windows Status display (in C) -- GTK Configurator -- Shell functions to simplify wlanctl usage - Finish the prism2 request responses for STA and AP Station: - scan powermgmt join authenticate @@ -91,5 +84,3 @@ Linux WLAN NG TODO reassociate - Add event handling scripts for the events above - Add AP support for power managing stations -- Add a HOWTO document for users -- Add a HOWTO document for programmers diff --git a/src/include/wlan/wlan_compat.h b/src/include/wlan/wlan_compat.h index 6368eef..e95eeb4 100644 --- a/src/include/wlan/wlan_compat.h +++ b/src/include/wlan/wlan_compat.h @@ -584,6 +584,10 @@ typedef void irqreturn_t; #define USB_QUEUE_BULK 0 #endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) +#define free_netdev(x) kfree(x) +#endif + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)) #define del_timer_sync(a) del_timer(a) #endif diff --git a/src/p80211/p80211netdev.c b/src/p80211/p80211netdev.c index e26ab08..12f8d66 100644 --- a/src/p80211/p80211netdev.c +++ b/src/p80211/p80211netdev.c @@ -940,11 +940,17 @@ int wlan_unsetup(wlandevice_t *wlandev) DBFENTER; +#ifdef DECLARE_TASKLET + tasklet_kill(&wlandev->rx_bh); +#else +#warning "We aren't cleaning up the rx_bh cleanly!" +#endif + if (wlandev->netdev == NULL ) { WLAN_LOG_ERROR("called without wlandev->netdev set.\n"); result = 1; } else { - kfree(wlandev->netdev); + free_netdev(wlandev->netdev); wlandev->netdev = NULL; } @@ -1056,12 +1062,6 @@ int unregister_wlandev(wlandevice_t *wlandev) unregister_netdev(wlandev->netdev); -#ifdef DECLARE_TASKLET - tasklet_kill(&wlandev->rx_bh); -#else -#warning "We aren't cleaning up the rx_bh cleanly!" -#endif - /* Now to clean out the rx queue */ while ( (skb = skb_dequeue(&wlandev->nsd_rxq)) ) { dev_kfree_skb(skb);