~ubuntu-branches/ubuntu/hardy/linux-backports-modules-2.6.24/hardy-security

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Index: compatible/net/mac80211/ieee80211.c
===================================================================
--- compatible.orig/net/mac80211/ieee80211.c	2008-01-06 12:09:32.000000000 +0200
+++ compatible/net/mac80211/ieee80211.c	2008-01-06 12:09:32.000000000 +0200
@@ -2698,8 +2698,6 @@
 
 	if (local->open_count == 0) {
 		res = 0;
-		tasklet_enable(&local->tx_pending_tasklet);
-		tasklet_enable(&local->tasklet);
 		if (local->ops->open)
 			res = local->ops->open(local_to_hw(local));
 		if (res == 0) {
@@ -2721,6 +2719,9 @@
 							    &conf);
 			return res;
 		}
+		/* enable tasklets only if all callbacks return correctly */
+		tasklet_enable(&local->tx_pending_tasklet);
+		tasklet_enable(&local->tasklet);
 	}
 	local->open_count++;