diff options
author | Jarod Wilson <jarod@redhat.com> | 2010-10-16 20:36:43 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-22 18:05:36 -0400 |
commit | d889a135cb832c77b7f90a89b40090e4e9ba609b (patch) | |
tree | 3b11de68a05c50b3726b32882b962666e45f89ba | |
parent | 90dc4cfa2076cdc4df4c2f5dd3cadeefd9557c2c (diff) |
[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 <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/IR/lirc_dev.c | 3 |
1 files changed, 1 insertions, 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) | |||
432 | retval = -ENODEV; | 432 | retval = -ENODEV; |
433 | goto error; | 433 | goto error; |
434 | } | 434 | } |
435 | file->private_data = ir; | ||
436 | 435 | ||
437 | dev_dbg(ir->d.dev, LOGHEAD "open called\n", ir->d.name, ir->d.minor); | 436 | dev_dbg(ir->d.dev, LOGHEAD "open called\n", ir->d.name, ir->d.minor); |
438 | 437 | ||
@@ -528,7 +527,7 @@ long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
528 | { | 527 | { |
529 | __u32 mode; | 528 | __u32 mode; |
530 | int result = 0; | 529 | int result = 0; |
531 | struct irctl *ir = file->private_data; | 530 | struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; |
532 | 531 | ||
533 | if (!ir) { | 532 | if (!ir) { |
534 | printk(KERN_ERR "lirc_dev: %s: no irctl found!\n", __func__); | 533 | printk(KERN_ERR "lirc_dev: %s: no irctl found!\n", __func__); |