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 9 次提交
  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 4 次提交
  9. 01 11月, 2010 13 次提交