1. 11 Oct, 2013 36 commits
  2. 07 Oct, 2013 4 commits
    • Benjamin Herrenschmidt's avatar
      powerpc/irq: Don't switch to irq stack from softirq stack · 8b5ede69
      Benjamin Herrenschmidt authored
      irq_exit() is now called on the irq stack, which can trigger a switch to
      the softirq stack from the irq stack.  If an interrupt happens at that
      point, we will not properly detect the re-entrancy and clobber the
      original return context on the irq stack.
      
      This fixes it.  The side effect is to prevent all nesting from softirq
      stack to irq stack even in the "safe" case but it's simpler that way and
      matches what x86_64 does.
      Reported-by: default avatarCédric Le Goater <clg@fr.ibm.com>
      Tested-by: default avatarCédric Le Goater <clg@fr.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8b5ede69
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · fd848319
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
       - fix for hidraw reference counting regression, by Manoj Chourasia
       - fix for minor number allocation for uhid, by David Herrmann
       - other small unsorted fixes / device ID additions
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: wiimote: fix FF deadlock
        HID: add Holtek USB ID 04d9:a081 SHARKOON DarkGlider
        HID: hidraw: close underlying device at removal of last reader
        HID: roccat: Fix "cannot create duplicate filename" problems
        HID: uhid: allocate static minor
      fd848319
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · 4f97c9b2
      Linus Torvalds authored
      Pull Tile bugfixes from Chris Metcalf:
       "This fixes some serious issues with PREEMPT support, and a couple of
        smaller corner-case issues fixed in the last couple of weeks"
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        arch: tile: re-use kbasename() helper
        tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT
        tile: ensure interrupts disabled for preempt_schedule_irq()
        tile: change lock initalization in hardwall
        tile: include: asm: use 'long long' instead of 'u64' for atomic64_t and its related functions
      4f97c9b2
    • 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