lirc_zilog uses a chunk_size of 2 and ir-lirc-codec uses sizeof(int). Therefore, using stack memory should be perfectly fine. Signed-off-by: David Härdeman <david@xxxxxxxxxxx> --- drivers/media/rc/lirc_dev.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c index 1773a2934484..92048d945ba7 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -376,7 +376,7 @@ ssize_t lirc_dev_fop_read(struct file *file, loff_t *ppos) { struct irctl *ir = file->private_data; - unsigned char *buf; + unsigned char buf[ir->buf->chunk_size]; int ret = 0, written = 0; DECLARE_WAITQUEUE(wait, current); @@ -385,10 +385,6 @@ ssize_t lirc_dev_fop_read(struct file *file, dev_dbg(ir->d.dev, LOGHEAD "read called\n", ir->d.name, ir->d.minor); - buf = kzalloc(ir->buf->chunk_size, GFP_KERNEL); - if (!buf) - return -ENOMEM; - if (mutex_lock_interruptible(&ir->irctl_lock)) { ret = -ERESTARTSYS; goto out_unlocked; @@ -464,8 +460,6 @@ ssize_t lirc_dev_fop_read(struct file *file, mutex_unlock(&ir->irctl_lock); out_unlocked: - kfree(buf); - return ret ? ret : written; } EXPORT_SYMBOL(lirc_dev_fop_read);