ipw2200: firmware DMA loading rework
authorZhu Yi <yi.zhu@intel.com>
Fri, 28 Aug 2009 03:42:31 +0000 (11:42 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Aug 2009 18:35:32 +0000 (14:35 -0400)
commit11ebd1bf07fafde8d16562966c96b05b0d4ced9e
tree3bcb6b5ad97694042b39eb045cdaa9a57ad31b0a
parent8ff499e43c537648399fca8ba39d24c0768b3fab
ipw2200: firmware DMA loading rework

Bartlomiej Zolnierkiewicz reported an atomic order-6 allocation failure
for ipw2200 firmware loading in kernel 2.6.30. High order allocation is
likely to fail and should always be avoided.

The patch fixes this problem by replacing the original order-6
pci_alloc_consistent() with an array of order-1 pages from a pci pool.
This utilized the ipw2200 DMA command blocks (up to 64 slots). The
maximum firmware size support remains the same (64*8K).

This patch fixes bug http://bugzilla.kernel.org/show_bug.cgi?id=14016

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ipw2x00/ipw2200.c