From d889a135cb832c77b7f90a89b40090e4e9ba609b Mon Sep 17 00:00:00 2001 From: Jarod Wilson Date: Sat, 16 Oct 2010 21:36:43 -0300 Subject: [PATCH] [media] lirc_dev: get irctl from irctls by inode again Can't explain it (yet), but I've seen the 'get irctl via private_data' setup fail for a number of people (ioctl called before its filled in?), so lets go back to a variant of the old way, but one that still works with unlocked_ioctl. Signed-off-by: Jarod Wilson Signed-off-by: Mauro Carvalho Chehab --- drivers/media/IR/lirc_dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/media/IR/lirc_dev.c b/drivers/media/IR/lirc_dev.c index 19a16cef7d65..3eea3736711e 100644 --- a/drivers/media/IR/lirc_dev.c +++ b/drivers/media/IR/lirc_dev.c @@ -432,7 +432,6 @@ int lirc_dev_fop_open(struct inode *inode, struct file *file) retval = -ENODEV; goto error; } - file->private_data = ir; dev_dbg(ir->d.dev, LOGHEAD "open called\n", ir->d.name, ir->d.minor); @@ -528,7 +527,7 @@ long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { __u32 mode; int result = 0; - struct irctl *ir = file->private_data; + struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; if (!ir) { printk(KERN_ERR "lirc_dev: %s: no irctl found!\n", __func__); -- GitLab