From 998a5a7d6aabe7e450759e0d82c8a79afd5a97ff Mon Sep 17 00:00:00 2001
From: Frank Seidel <frank@f-seidel.de>
Date: Wed, 25 Feb 2009 15:39:57 +0100
Subject: [PATCH] airo: reduce stack memory footprint

Applying kernel janitors todos (reduce stack
footprint where possible) to airo wireless driver.
(Before 1124 bytes on i386, now 876)

Signed-off-by: Frank Seidel <frank@f-seidel.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
 drivers/net/wireless/airo.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index a3e324e0ca83..f5e2dca083cb 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -7148,11 +7148,15 @@ static int airo_get_aplist(struct net_device *dev,
 {
 	struct airo_info *local = dev->ml_priv;
 	struct sockaddr *address = (struct sockaddr *) extra;
-	struct iw_quality qual[IW_MAX_AP];
+	struct iw_quality *qual;
 	BSSListRid BSSList;
 	int i;
 	int loseSync = capable(CAP_NET_ADMIN) ? 1: -1;
 
+	qual = kmalloc(IW_MAX_AP * sizeof(*qual), GFP_KERNEL);
+	if (!qual)
+		return -ENOMEM;
+
 	for (i = 0; i < IW_MAX_AP; i++) {
 		u16 dBm;
 		if (readBSSListRid(local, loseSync, &BSSList))
@@ -7207,6 +7211,7 @@ static int airo_get_aplist(struct net_device *dev,
 	}
 	dwrq->length = i;
 
+	kfree(qual);
 	return 0;
 }
 
-- 
2.20.1