diff options
author | Zhu Yi <yi.zhu@intel.com> | 2010-03-08 13:18:03 +0800 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-03-10 16:16:55 -0500 |
commit | 8e59340e4fb65cfd748eaa1e23db057c52520f35 (patch) | |
tree | d302d7fc27edf87c78e50ee24608554240d99dec /drivers/net/wireless/ipw2x00/libipw.h | |
parent | 38a679a52be13d5a0c766597ab823e06688d6e8e (diff) |
libipw: split ieee->networks into small pieces
The ieee->networks consists of 128 struct libipw_network entries. If
we allocate this chunk of memory altogether, it ends up with an
order 4 page allocation. High order page allocation is likely to fail
on system high load. This patch splits the big chunk memory allocation
into small pieces, each is 344 bytes, allocates them with 128 times.
The patch fixed bug http://bugzilla.kernel.org/show_bug.cgi?id=14989
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ipw2x00/libipw.h')
-rw-r--r-- | drivers/net/wireless/ipw2x00/libipw.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ipw2x00/libipw.h b/drivers/net/wireless/ipw2x00/libipw.h index bf45391172f..a6d5e42647e 100644 --- a/drivers/net/wireless/ipw2x00/libipw.h +++ b/drivers/net/wireless/ipw2x00/libipw.h @@ -797,7 +797,7 @@ struct libipw_device { /* Probe / Beacon management */ struct list_head network_free_list; struct list_head network_list; - struct libipw_network *networks; + struct libipw_network *networks[MAX_NETWORK_COUNT]; int scans; int scan_age; |