net: ppp_deflate: Switch z_decomp_alloc to vmalloced decompress buffers

On systems with high memory pressure, allocating an order 4 contiguous region
for decompression can fail at run time.  Instead use virtually contigous memory
allocated via vmalloc.

Change-Id: I7821882bd183a1de0d73ab2932f6e6978e4f0970
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
This commit is contained in:
Rebecca Schultz Zavin
2010-04-29 13:36:55 -07:00
committed by Colin Cross
parent c7c0790dce
commit bfea4fcd5b

View File

@@ -306,7 +306,7 @@ static void z_decomp_free(void *arg)
if (state) {
zlib_inflateEnd(&state->strm);
kfree(state->strm.workspace);
vfree(state->strm.workspace);
kfree(state);
}
}
@@ -346,8 +346,7 @@ static void *z_decomp_alloc(unsigned char *options, int opt_len)
state->w_size = w_size;
state->strm.next_out = NULL;
state->strm.workspace = kmalloc(zlib_inflate_workspacesize(),
GFP_KERNEL|__GFP_REPEAT);
state->strm.workspace = vmalloc(zlib_inflate_workspacesize());
if (state->strm.workspace == NULL)
goto out_free;