[PATCH] hostap update

Cleaned up scan result processing by converting struct
hfa384x_scan_result into struct hfa384x_hostscan_result. This removes
special cases from result processing since the results are only used
in one, hostscan, format.

Signed-off-by: Jouni Malinen <jkmaline@cc.hut.fi>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
diff --git a/drivers/net/wireless/hostap/hostap_info.c b/drivers/net/wireless/hostap/hostap_info.c
index cf9e089..6ca9491 100644
--- a/drivers/net/wireless/hostap/hostap_info.c
+++ b/drivers/net/wireless/hostap/hostap_info.c
@@ -160,7 +160,7 @@
 {
 	struct hfa384x_join_request req;
 	struct net_device *dev = local->dev;
-	struct hfa384x_scan_result *selected, *entry;
+	struct hfa384x_hostscan_result *selected, *entry;
 	int i;
 	unsigned long flags;
 
@@ -244,9 +244,10 @@
 				    int left)
 {
 	u16 *pos;
-	int new_count;
+	int new_count, i;
 	unsigned long flags;
-	struct hfa384x_scan_result *results, *prev;
+	struct hfa384x_scan_result *res;
+	struct hfa384x_hostscan_result *results, *prev;
 
 	if (left < 4) {
 		printk(KERN_DEBUG "%s: invalid scanresult info frame "
@@ -260,11 +261,18 @@
 	left -= 4;
 
 	new_count = left / sizeof(struct hfa384x_scan_result);
-	results = kmalloc(new_count * sizeof(struct hfa384x_scan_result),
+	results = kmalloc(new_count * sizeof(struct hfa384x_hostscan_result),
 			  GFP_ATOMIC);
 	if (results == NULL)
 		return;
-	memcpy(results, pos, new_count * sizeof(struct hfa384x_scan_result));
+
+	/* Convert to hostscan result format. */
+	res = (struct hfa384x_scan_result *) pos;
+	for (i = 0; i < new_count; i++) {
+		memcpy(&results[i], &res[i],
+		       sizeof(struct hfa384x_scan_result));
+		results[i].atim = 0;
+	}
 
 	spin_lock_irqsave(&local->lock, flags);
 	local->last_scan_type = PRISM2_SCAN;
@@ -335,9 +343,9 @@
 
 	spin_lock_irqsave(&local->lock, flags);
 	local->last_scan_type = PRISM2_HOSTSCAN;
-	prev = local->last_hostscan_results;
-	local->last_hostscan_results = results;
-	local->last_hostscan_results_count = new_count;
+	prev = local->last_scan_results;
+	local->last_scan_results = results;
+	local->last_scan_results_count = new_count;
 	spin_unlock_irqrestore(&local->lock, flags);
 	kfree(prev);