mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 12:14:10 +08:00
Input: ili210x - use kvmalloc() to allocate buffer for firmware update
Allocating a contiguous buffer of 64K may fail if memory is sufficiently fragmented, and may cause OOM kill of an unrelated process. However we do not need to have contiguous memory. We also do not need to zero out the buffer since it will be overwritten with firmware data. Switch to using kvmalloc() instead of kzalloc(). Link: https://lore.kernel.org/r/20240609234757.610273-1-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
f2845b4f1b
commit
17f5eebf67
@ -597,7 +597,7 @@ static int ili251x_firmware_to_buffer(const struct firmware *fw,
|
||||
* once, copy them all into this buffer at the right locations, and then
|
||||
* do all operations on this linear buffer.
|
||||
*/
|
||||
fw_buf = kzalloc(SZ_64K, GFP_KERNEL);
|
||||
fw_buf = kvmalloc(SZ_64K, GFP_KERNEL);
|
||||
if (!fw_buf)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -627,7 +627,7 @@ static int ili251x_firmware_to_buffer(const struct firmware *fw,
|
||||
return 0;
|
||||
|
||||
err_big:
|
||||
kfree(fw_buf);
|
||||
kvfree(fw_buf);
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -870,7 +870,7 @@ exit:
|
||||
ili210x_hardware_reset(priv->reset_gpio);
|
||||
dev_dbg(dev, "Firmware update ended, error=%i\n", error);
|
||||
enable_irq(client->irq);
|
||||
kfree(fwbuf);
|
||||
kvfree(fwbuf);
|
||||
return error;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user