RDMA/cxgb3: Don't add PBL memory to gen_pool in chunks
authorRoland Dreier <rolandd@cisco.com>
Tue, 6 May 2008 22:03:38 +0000 (15:03 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 6 May 2008 22:03:38 +0000 (15:03 -0700)
commit0e9913362a967377eb886bbdf305ec58aa07a878
tree4677a588e942eb198c9cdb15338bcbcfb51f6902
parenta15306365a16380f3bafee9e181ba01231d4acd7
RDMA/cxgb3: Don't add PBL memory to gen_pool in chunks

Current iw_cxgb3 code adds PBL memory to the driver's gen_pool in 2 MB
chunks.  This limits the largest single allocation that can be done to
the same size, which means that with 4 KB pages, each of which takes 8
bytes of PBL memory, the largest memory region that can be allocated
is 1 GB (256K PBL entries * 4 KB/entry).

Remove this limit by adding all the PBL memory in a single gen_pool
chunk, if possible.  Add code that falls back to smaller chunks if
gen_pool_add() fails, which can happen if there is not sufficient
contiguous lowmem for the internal gen_pool bitmap.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/cxgb3/cxio_resource.c