mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
net+crypto: Use vmalloc for zlib inflate buffers.
They are 64K and result in order-4 allocations, even with SLUB. Therefore, just like we always have for the deflate buffers, use vmalloc. Reported-by: Martin Jackson <[email protected]> Acked-by: Herbert Xu <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
ed6e4ef836
commit
7ab24bfdf9
4 changed files with 11 additions and 14 deletions
|
|
@ -49,6 +49,7 @@
|
|||
#include <linux/zlib.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
#define BNX2X_MAIN
|
||||
#include "bnx2x.h"
|
||||
|
|
@ -4537,8 +4538,7 @@ static int bnx2x_gunzip_init(struct bnx2x *bp)
|
|||
if (bp->strm == NULL)
|
||||
goto gunzip_nomem2;
|
||||
|
||||
bp->strm->workspace = kmalloc(zlib_inflate_workspacesize(),
|
||||
GFP_KERNEL);
|
||||
bp->strm->workspace = vmalloc(zlib_inflate_workspacesize());
|
||||
if (bp->strm->workspace == NULL)
|
||||
goto gunzip_nomem3;
|
||||
|
||||
|
|
@ -4562,7 +4562,7 @@ gunzip_nomem1:
|
|||
static void bnx2x_gunzip_end(struct bnx2x *bp)
|
||||
{
|
||||
if (bp->strm) {
|
||||
kfree(bp->strm->workspace);
|
||||
vfree(bp->strm->workspace);
|
||||
kfree(bp->strm);
|
||||
bp->strm = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,7 +305,7 @@ static void z_decomp_free(void *arg)
|
|||
|
||||
if (state) {
|
||||
zlib_inflateEnd(&state->strm);
|
||||
kfree(state->strm.workspace);
|
||||
vfree(state->strm.workspace);
|
||||
kfree(state);
|
||||
}
|
||||
}
|
||||
|
|
@ -345,8 +345,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;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue