Patch "Input: ili210x - use kvmalloc() to allocate buffer for firmware update" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    Input: ili210x - use kvmalloc() to allocate buffer for firmware update

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     input-ili210x-use-kvmalloc-to-allocate-buffer-for-fi.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 7e11972b6d03162c9e56c1496bf00902ccea5169
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date:   Sun Jun 9 16:47:53 2024 -0700

    Input: ili210x - use kvmalloc() to allocate buffer for firmware update
    
    [ Upstream commit 17f5eebf6780eee50f887542e1833fda95f53e4d ]
    
    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@xxxxxxxxx
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c
index ae7ba0c419f5..6a77babcf722 100644
--- a/drivers/input/touchscreen/ili210x.c
+++ b/drivers/input/touchscreen/ili210x.c
@@ -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 @@ static ssize_t ili210x_firmware_update_store(struct device *dev,
 	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;
 }
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux