Skip to content
  1. Oct 11, 2013
  2. Oct 08, 2013
  3. Oct 07, 2013
    • David Herrmann's avatar
      HID: wiimote: fix FF deadlock · f50f9aab
      David Herrmann authored
      The input core has an internal spinlock that is acquired during event
      injection via input_event() and friends but also held during FF callbacks.
      That means, there is no way to share a lock between event-injection and FF
      handling. Unfortunately, this is what is required for wiimote state
      tracking and what we do with state.lock and input->lock.
      
      This deadlock can be triggered when using continuous data reporting and FF
      on a wiimote device at the same time. I takes me at least 30m of
      stress-testing to trigger it but users reported considerably shorter
      times (http://bpaste.net/show/132504/
      
      ) when using some gaming-console
      emulators.
      
      The real problem is that we have two copies of internal state, one in the
      wiimote objects and the other in the input device. As the input-lock is
      not supposed to be accessed from outside of input-core, we have no other
      chance than offloading FF handling into a worker. This actually works
      pretty nice and also allows to implictly merge fast rumble changes into a
      single request.
      
      Due to the 3-layered workers (rumble+queue+l2cap) this might reduce FF
      responsiveness. Initial tests were fine so lets fix the race first and if
      it turns out to be too slow we can always handle FF out-of-band and skip
      the queue-worker.
      
      Cc: <stable@vger.kernel.org> # 3.11+
      Reported-by: Thomas Schneider
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      f50f9aab
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 162bdafa
      Linus Torvalds authored
      Pull s390 fixes from Martin Schwidefsky:
       "A couple of bux fixes, notable are the regression with ptrace vs
        restarting system calls and the patch for kdump to be able to copy
        from virtual memory"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: fix system call restart after inferior call
        s390: Allow vmalloc target buffers for copy_from_oldmem()
        s390/sclp: properly detect line mode console
        s390/kprobes: add exrl to list of prohibited opcodes
        s390/3270: fix return value check in tty3270_resize_work()
      162bdafa
    • Linus Torvalds's avatar
      Linux 3.12-rc4 · d0e639c9
      Linus Torvalds authored
      v3.12-rc4
      d0e639c9