diff options
| author | John W. Linville <linville@tuxdriver.com> | 2008-11-11 16:00:06 -0500 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2008-11-21 11:08:17 -0500 | 
| commit | 2ba4b32ecf748d5f45f298fc9677fa46d1dd9aff (patch) | |
| tree | ebdf68be060014d9f5c799cf1cb54462bc896140 /drivers/net/wireless/hostap/hostap_hw.c | |
| parent | 274bfb8dc5ffa16cb073801bebe76ab7f4e2e73d (diff) | |
| download | olio-linux-3.10-2ba4b32ecf748d5f45f298fc9677fa46d1dd9aff.tar.xz olio-linux-3.10-2ba4b32ecf748d5f45f298fc9677fa46d1dd9aff.zip  | |
lib80211: consolidate crypt init routines
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_hw.c')
| -rw-r--r-- | drivers/net/wireless/hostap/hostap_hw.c | 61 | 
1 files changed, 2 insertions, 59 deletions
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c index 066299fc925..0f27059bbe8 100644 --- a/drivers/net/wireless/hostap/hostap_hw.c +++ b/drivers/net/wireless/hostap/hostap_hw.c @@ -2788,46 +2788,6 @@ static void prism2_check_sta_fw_version(local_info_t *local)  } -static void prism2_crypt_deinit_entries(local_info_t *local, int force) -{ -	struct list_head *ptr, *n; -	struct lib80211_crypt_data *entry; - -	for (ptr = local->crypt_info.crypt_deinit_list.next, n = ptr->next; -	     ptr != &local->crypt_info.crypt_deinit_list; -	     ptr = n, n = ptr->next) { -		entry = list_entry(ptr, struct lib80211_crypt_data, list); - -		if (atomic_read(&entry->refcnt) != 0 && !force) -			continue; - -		list_del(ptr); - -		if (entry->ops) -			entry->ops->deinit(entry->priv); -		kfree(entry); -	} -} - - -static void prism2_crypt_deinit_handler(unsigned long data) -{ -	local_info_t *local = (local_info_t *) data; -	unsigned long flags; - -	spin_lock_irqsave(&local->lock, flags); -	prism2_crypt_deinit_entries(local, 0); -	if (!list_empty(&local->crypt_info.crypt_deinit_list)) { -		printk(KERN_DEBUG "%s: entries remaining in delayed crypt " -		       "deletion list\n", local->dev->name); -		local->crypt_info.crypt_deinit_timer.expires = jiffies + HZ; -		add_timer(&local->crypt_info.crypt_deinit_timer); -	} -	spin_unlock_irqrestore(&local->lock, flags); - -} - -  static void hostap_passive_scan(unsigned long data)  {  	local_info_t *local = (local_info_t *) data; @@ -3252,12 +3212,7 @@ while (0)  	INIT_LIST_HEAD(&local->cmd_queue);  	init_waitqueue_head(&local->hostscan_wq); -	local->crypt_info.name = dev->name; -	local->crypt_info.lock = &local->lock; -	INIT_LIST_HEAD(&local->crypt_info.crypt_deinit_list); -	init_timer(&local->crypt_info.crypt_deinit_timer); -	local->crypt_info.crypt_deinit_timer.data = (unsigned long) local; -	local->crypt_info.crypt_deinit_timer.function = prism2_crypt_deinit_handler; +	lib80211_crypt_info_init(&local->crypt_info, dev->name, &local->lock);  	init_timer(&local->passive_scan_timer);  	local->passive_scan_timer.data = (unsigned long) local; @@ -3358,9 +3313,7 @@ static void prism2_free_local_data(struct net_device *dev)  	flush_scheduled_work(); -	if (timer_pending(&local->crypt_info.crypt_deinit_timer)) -		del_timer(&local->crypt_info.crypt_deinit_timer); -	prism2_crypt_deinit_entries(local, 1); +	lib80211_crypt_info_free(&local->crypt_info);  	if (timer_pending(&local->passive_scan_timer))  		del_timer(&local->passive_scan_timer); @@ -3377,16 +3330,6 @@ static void prism2_free_local_data(struct net_device *dev)  	if (local->dev_enabled)  		prism2_callback(local, PRISM2_CALLBACK_DISABLE); -	for (i = 0; i < WEP_KEYS; i++) { -		struct lib80211_crypt_data *crypt = local->crypt_info.crypt[i]; -		if (crypt) { -			if (crypt->ops) -				crypt->ops->deinit(crypt->priv); -			kfree(crypt); -			local->crypt_info.crypt[i] = NULL; -		} -	} -  	if (local->ap != NULL)  		hostap_free_data(local->ap);  |