qlcnic: Fix memory allocation
o Use vzalloc() instead of kzalloc() for allocation of bootloader size memory. kzalloc() may fail to allocate the size of bootloader Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b17a44d8b8
commit
3fc38e267b
@@ -1254,24 +1254,24 @@ static int qlcnic_83xx_copy_bootloader(struct qlcnic_adapter *adapter)
|
|||||||
if (size & 0xF)
|
if (size & 0xF)
|
||||||
size = (size + 16) & ~0xF;
|
size = (size + 16) & ~0xF;
|
||||||
|
|
||||||
p_cache = kzalloc(size, GFP_KERNEL);
|
p_cache = vzalloc(size);
|
||||||
if (p_cache == NULL)
|
if (p_cache == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ret = qlcnic_83xx_lockless_flash_read32(adapter, src, p_cache,
|
ret = qlcnic_83xx_lockless_flash_read32(adapter, src, p_cache,
|
||||||
size / sizeof(u32));
|
size / sizeof(u32));
|
||||||
if (ret) {
|
if (ret) {
|
||||||
kfree(p_cache);
|
vfree(p_cache);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
/* 16 byte write to MS memory */
|
/* 16 byte write to MS memory */
|
||||||
ret = qlcnic_83xx_ms_mem_write128(adapter, dest, (u32 *)p_cache,
|
ret = qlcnic_83xx_ms_mem_write128(adapter, dest, (u32 *)p_cache,
|
||||||
size / 16);
|
size / 16);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
kfree(p_cache);
|
vfree(p_cache);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
kfree(p_cache);
|
vfree(p_cache);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user