airo: reduce stack memory footprint
authorFrank Seidel <frank@f-seidel.de>
Wed, 25 Feb 2009 14:39:57 +0000 (15:39 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Mar 2009 19:39:31 +0000 (14:39 -0500)
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

index a3e324e0ca83d82931429827cb260012711e8c22..f5e2dca083cbe5e574bcae3d330643628aa358f1 100644 (file)
@@ -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;
 }