1. 21 11月, 2010 1 次提交
    • J
      Input: serio HIL MLC - don't deref null, don't leak and return proper error · 39de5210
      Jesper Juhl 提交于
      While reviewing various users of kernel memory allocation functions I came
      across drivers/input/serio/hil_mlc.c::hil_mlc_register() and noticed that:
      
       - it calls kzalloc() but fails to check for a NULL return before use.
       - it makes several allocations and if one fails it doesn't free the
         previous ones.
       - It doesn't return -ENOMEM in the failed memory allocation case (it just
         crashes).
      
      This patch corrects all of the above and also reworks the only caller of
      this function that I could find
      (drivers/input/serio/hp_sdc_mlc.c::hp_sdc_mlc_out()) so that it now checks
      the return value of hil_mlc_register() and properly propagates it on
      failure and I also restructured the code to remove some labels and goto's
      to make it, IMHO nicer to read.
      Signed-off-by: NJesper Juhl <jj@chaosbits.net>
      Tested-by: NHelge Deller <deller@gmx.de>
      Acked-by: NHelge Deller <deller@gmx.de>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      39de5210
  2. 20 11月, 2010 1 次提交
  3. 18 11月, 2010 5 次提交
  4. 15 11月, 2010 3 次提交
  5. 12 11月, 2010 8 次提交
  6. 11 11月, 2010 3 次提交
  7. 05 11月, 2010 1 次提交
    • B
      Input: atkbd - add 'terminal' parameter for IBM Terminal keyboards · 8c5188b6
      Benjamin LaHaise 提交于
      Many of the IBM Terminal keyboards from the 1980s and early 1990s communicate
      using a protocol similar, but not identical to the AT keyboard protocol.
      (Models known to be like this include 6110344, 6110668, 1390876, 1386887, and
      possibly others.)
      
      When the connector is rewired or adapter to an AT-DIN or PS/2 connector, they
      can be connected to a standard PC, with three caveats:
      
      a) They can only use scancode set 3; requests to use anything else are
      quietly ignored.
      b) The AT Command to request Make, Break and Repeat codes is not properly
      interpreted.
      c) The top function keys on a 122 key keyboard, and the arrow/edit keys in
      the middle of the board send non-standard scancodes.
      
      C) is easily taken care of in userspace, by use of setkeycodes
      B) can be taken care of by a userspace hack (that makes the kernel complain
      in dmesg)
      A) is fixable in theory, but on the keyboard i tested on (6110668), it seems
      to be detected unoverridably as Set 2, causing userspace oddities that make
      it harder to fix C).
      
      Enclosed is a small patch to the kernel that fixes A) and B) in the kernel,
      making it much easier to fix C) in userspace. It adds a single kernel
      command line parameter that overrides the detection that sets these boards
      as set 2, and instead of sending the Make-break-repeat command to the
      keyboard, it sends the make-break command, which is properly recognized by
      these keyboards. Software level key repeating seems to make up for the lack
      of hardware repeat codes perfectly.
      
      Without manually setting the command line parameter (tentatively named
      atkbd.terminal), this code has no effect, and the driver works exactly as
      before.
      
      See also:
      
      http://www.seasip.info/VintagePC/ibm_1390876.html
      http://www.seasip.info/VintagePC/ibm_6110344.html
      http://geekhack.org/showwiki.php?title=Island:7306Signed-off-by: NErika Quinn <erikas.aubade@gmail.com>
      Signed-off-by: NBenjamin LaHaise <bcrl@kvack.org>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      8c5188b6
  8. 04 11月, 2010 3 次提交
  9. 31 10月, 2010 1 次提交
  10. 29 10月, 2010 3 次提交
  11. 27 10月, 2010 2 次提交
  12. 25 10月, 2010 2 次提交
  13. 23 10月, 2010 1 次提交
  14. 19 10月, 2010 4 次提交
  15. 18 10月, 2010 2 次提交
    • D
      Input: evdev - fix EVIOCSABS regression · f9ce6eb5
      Daniel Mack 提交于
      448cd166 ("Input: evdev - rearrange ioctl handling") broke EVIOCSABS by
      checking for the wrong direction bit.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Reported-by: NSven Neumann <s.neumann@raumfeld.com>
      Tested-by: NSven Neumann <s.neumann@raumfeld.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      f9ce6eb5
    • 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