[802.11] Properly initialize autoassociation process
authorJoshua Oreman <oremanj@rwcr.net>
Tue, 11 Aug 2009 05:31:51 +0000 (22:31 -0700)
committerMichael Brown <mcb30@etherboot.org>
Tue, 11 Aug 2009 23:31:34 +0000 (00:31 +0100)
The recent change to process_add() to detect duplicate process
additions relies on the fact that all processes will be initialized
using process_init_stopped() before being passed to that function.
The autoassociation process was not initialized in this fashion, so
process_add() erroneously detected it as a duplicate.

Fix by using process_init_stopped() to initialize the autoassociation
process instead of setting the step member directly.

Signed-off-by: Michael Brown <mcb30@etherboot.org>
src/net/80211/net80211.c

index a07e2fa..91609d9 100644 (file)
@@ -767,7 +767,8 @@ struct net80211_device * net80211_alloc ( size_t priv_size )
        dev->priv = ( u8 * ) dev + sizeof ( *dev );
        dev->op = &net80211_null_ops;
 
-       dev->proc_assoc.step = net80211_step_associate;
+       process_init_stopped ( &dev->proc_assoc, net80211_step_associate,
+                              &netdev->refcnt );
        INIT_LIST_HEAD ( &dev->mgmt_queue );
        INIT_LIST_HEAD ( &dev->mgmt_info_queue );