diff options
author | Frank Seidel <frank@f-seidel.de> | 2009-03-01 14:25:38 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-05 14:39:37 -0500 |
commit | a412c8040d83366dcc24962207b8beed52f29344 (patch) | |
tree | f5a3c04cc85662f01ec32790df3c6dbc6f0f18b0 /drivers/net/wireless/iwlwifi/iwl-3945-rs.c | |
parent | 64abd80330baba9d87df2b952a7eec5af5158470 (diff) |
iwlwifi: reduce stack size
Reduce stack memory footprint of iwlwifi.
(From >1000 bytes for each *_table_read
on i386 down to 32)
Signed-off-by: Frank Seidel <frank@f-seidel.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-3945-rs.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c index 7db8198c6253..a2664589c884 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c | |||
@@ -846,11 +846,16 @@ static ssize_t iwl3945_sta_dbgfs_stats_table_read(struct file *file, | |||
846 | char __user *user_buf, | 846 | char __user *user_buf, |
847 | size_t count, loff_t *ppos) | 847 | size_t count, loff_t *ppos) |
848 | { | 848 | { |
849 | char buff[1024]; | 849 | char *buff; |
850 | int desc = 0; | 850 | int desc = 0; |
851 | int j; | 851 | int j; |
852 | ssize_t ret; | ||
852 | struct iwl3945_rs_sta *lq_sta = file->private_data; | 853 | struct iwl3945_rs_sta *lq_sta = file->private_data; |
853 | 854 | ||
855 | buff = kmalloc(1024, GFP_KERNEL); | ||
856 | if (!buff) | ||
857 | return -ENOMEM; | ||
858 | |||
854 | desc += sprintf(buff + desc, "tx packets=%d last rate index=%d\n" | 859 | desc += sprintf(buff + desc, "tx packets=%d last rate index=%d\n" |
855 | "rate=0x%X flush time %d\n", | 860 | "rate=0x%X flush time %d\n", |
856 | lq_sta->tx_packets, | 861 | lq_sta->tx_packets, |
@@ -863,7 +868,9 @@ static ssize_t iwl3945_sta_dbgfs_stats_table_read(struct file *file, | |||
863 | lq_sta->win[j].success_counter, | 868 | lq_sta->win[j].success_counter, |
864 | lq_sta->win[j].success_ratio); | 869 | lq_sta->win[j].success_ratio); |
865 | } | 870 | } |
866 | return simple_read_from_buffer(user_buf, count, ppos, buff, desc); | 871 | ret = simple_read_from_buffer(user_buf, count, ppos, buff, desc); |
872 | kfree(buff); | ||
873 | return ret; | ||
867 | } | 874 | } |
868 | 875 | ||
869 | static const struct file_operations rs_sta_dbgfs_stats_table_ops = { | 876 | static const struct file_operations rs_sta_dbgfs_stats_table_ops = { |