From: Jarod Wilson Date: Sun, 17 Oct 2010 00:36:43 +0000 (-0300) Subject: [media] lirc_dev: get irctl from irctls by inode again X-Git-Url: http://git.mmlx.us/?a=commitdiff_plain;h=d889a135cb832c77b7f90a89b40090e4e9ba609b;p=linux-edison.git [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 --- diff --git a/drivers/media/IR/lirc_dev.c b/drivers/media/IR/lirc_dev.c index 19a16cef7d6..3eea3736711 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__);