1. 18 10月, 2010 1 次提交
    • D
      Input: evdev - fix Ooops in EVIOCGABS/EVIOCSABS · 0a74a1df
      Daniel Mack 提交于
      This fixes a regression introduced by the dynamic allocation of absinfo
      for input devices. We need to bail out early for input devices which
      don't have absolute axis.
      
      [  929.664303] Pid: 2989, comm: input Not tainted 2.6.36-rc8+ #14 MS-7260/MS-7260
      [  929.664318] EIP: 0060:[<c12bdc01>] EFLAGS: 00010246 CPU: 0
      [  929.664331] EIP is at evdev_ioctl+0x4f8/0x59f
      [  929.664341] EAX: 00000040 EBX: 00000000 ECX: 00000006 EDX: f45a1efc
      [  929.664355] ESI: 00000000 EDI: f45a1efc EBP: f45a1f24 ESP: f45a1eb8
      [  929.664369]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      [  929.664402]  f470da74 f6a30e78 f462c240 00000018 bfe4a260 00000000 f45b06fc 00000000
      [  929.664429] <0> 000000c4 b769d000 c3544620 f470da74 f45b06fc f45b06fc f45a1f38 c107dd1f
      [  929.664458] <0> f4710b74 000000c4 00000000 00000000 00000000 0000029d 00000a74 f4710b74
      [  929.664500]  [<c107dd1f>] ? handle_mm_fault+0x2be/0x59a
      [  929.664513]  [<c12bd709>] ? evdev_ioctl+0x0/0x59f
      [  929.664524]  [<c1099d30>] ? do_vfs_ioctl+0x494/0x4d9
      [  929.664538]  [<c10432a1>] ? up_read+0x16/0x29
      [  929.664550]  [<c101c818>] ? do_page_fault+0x2ff/0x32d
      [  929.664564]  [<c108d048>] ? do_sys_open+0xc5/0xcf
      [  929.664575]  [<c1099db6>] ? sys_ioctl+0x41/0x61
      [  929.664587]  [<c1002710>] ? sysenter_do_call+0x12/0x36
      [  929.684570] ---[ end trace 11b83e923bd8f2bb ]---
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      0a74a1df
  2. 03 8月, 2010 3 次提交
  3. 16 7月, 2010 3 次提交
  4. 24 6月, 2010 3 次提交
  5. 09 3月, 2010 1 次提交
  6. 04 2月, 2010 1 次提交
  7. 06 1月, 2010 1 次提交
    • A
      Input: evdev - be less aggressive about sending SIGIO notifies · 30a589fd
      Adam Jackson 提交于
      When using realtime signals, we'll enqueue one signal for every event.
      This is unfortunate, because (for example) keyboard presses are three
      events: key, msc scancode, and syn.  They'll be enqueued fast enough in
      kernel space that all three events will be ready to read by the time
      userspace runs, so the first invocation of the signal handler will read
      all three events, but then the second two invocations still have to run
      to do no work.
      
      Instead, only send the SIGIO notification on syn events.  This is a
      slight abuse of SIGIO semantics, in principle it ought to fire as soon
      as any events are readable.  But it matches evdev semantics, which is
      more important since SIGIO is rather vaguely defined to begin with.
      Signed-off-by: NAdam Jackson <ajax@redhat.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      30a589fd
  8. 05 10月, 2009 1 次提交
  9. 14 7月, 2009 1 次提交
  10. 20 6月, 2009 1 次提交
  11. 11 5月, 2009 1 次提交
  12. 16 3月, 2009 1 次提交
    • J
      Rationalize fasync return values · 60aa4924
      Jonathan Corbet 提交于
      Most fasync implementations do something like:
      
           return fasync_helper(...);
      
      But fasync_helper() will return a positive value at times - a feature used
      in at least one place.  Thus, a number of other drivers do:
      
           err = fasync_helper(...);
           if (err < 0)
                   return err;
           return 0;
      
      In the interests of consistency and more concise code, it makes sense to
      map positive return values onto zero where ->fasync() is called.
      
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: NJonathan Corbet <corbet@lwn.net>
      60aa4924
  13. 02 11月, 2008 1 次提交
    • A
      saner FASYNC handling on file close · 233e70f4
      Al Viro 提交于
      As it is, all instances of ->release() for files that have ->fasync()
      need to remember to evict file from fasync lists; forgetting that
      creates a hole and we actually have a bunch that *does* forget.
      
      So let's keep our lives simple - let __fput() check FASYNC in
      file->f_flags and call ->fasync() there if it's been set.  And lose that
      crap in ->release() instances - leaving it there is still valid, but we
      don't have to bother anymore.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      233e70f4
  14. 30 10月, 2008 1 次提交
  15. 28 10月, 2008 1 次提交
  16. 19 8月, 2008 1 次提交
  17. 09 8月, 2008 1 次提交
  18. 08 8月, 2008 1 次提交
  19. 30 6月, 2008 1 次提交
  20. 01 4月, 2008 1 次提交
  21. 31 3月, 2008 1 次提交
  22. 21 1月, 2008 1 次提交
  23. 20 10月, 2007 1 次提交
  24. 14 10月, 2007 1 次提交
  25. 13 10月, 2007 1 次提交
  26. 30 8月, 2007 1 次提交
  27. 01 8月, 2007 1 次提交
  28. 10 7月, 2007 1 次提交
  29. 04 6月, 2007 1 次提交
    • D
      Input: reduce raciness when input handlers disconnect · 1dfa2812
      Dmitry Torokhov 提交于
      There is a race between input handler's release() and disconnect()
      methods: when input handler disconnects it wakes up all regular
      users and then process to walk user list to wake up async. users.
      While disconnect() walks the list release() removes elements of
      the same list causing oopses.
      
      While this is not a substibute for proper locking we can reduce
      odds of getting an oops if we wake up normal readers after walking
      the list.
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      1dfa2812
  30. 12 5月, 2007 1 次提交
  31. 09 5月, 2007 1 次提交
  32. 03 5月, 2007 2 次提交
  33. 12 4月, 2007 1 次提交