1. 08 9月, 2014 2 次提交
  2. 04 9月, 2014 3 次提交
    • C
      HID: add support for PenMount HID TouchScreen Driver · ffe51d0d
      Christian Gmeiner 提交于
      This patch adds a seperate hid-penmount driver to work
      around an issue with the HID report descriptor. The
      descriptor does not contain the ContactID usage and as
      result the touchscreen is represented as normal mouse
      to the system.
      
      This driver maps the button 0 emitted by the touchscreen
      to BTN_TOUCH. This makes it possible to use touch events
      in userspace.
      Signed-off-by: NChristian Gmeiner <christian.gmeiner@gmail.com>
      Reviewed-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      ffe51d0d
    • J
      HID: thingm: fix workqueue race on remove · 67a97845
      Jiri Kosina 提交于
      thingm_remove_rgb() needs to flush the workqueue after all the LED classes
      have been unregistered, otherwise the removal might race with another LED
      event coming, causing thingm_led_set() to schedule additional work after
      thingm_remove_rgb() has flushed it. This obviously causes oops later, as
      the scheduled work has been freed in the meantime.
      
      In addition to that, move the hid_hw_stop() to an earlier place, so that
      dmesg is not polluted by failure messages about not being able to write
      the LED while the device is being shut down.
      Reported-and-tested-by: NDylan Alex Simon <dylan-kernel@dylex.net>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      67a97845
    • A
      HID: usbhid: improve handling of Clear-Halt and reset · 8f507ef5
      Alan Stern 提交于
      This patch changes the way usbhid carries out Clear-Halt and reset.
      
      Currently, after a Clear-Halt on the interrupt-IN endpoint, the driver
      immediately restarts the interrupt URB, even if the Clear-Halt failed.
      This doesn't work out well when the reason for the failure was that
      the device was disconnected (when a low- or full-speed device is
      connected through a hub to an EHCI controller, transfer errors caused
      by disconnection are reported as stalls by the hub).  Instead now the
      driver will attempt a reset after a failed Clear-Halt.
      
      The way resets are carried out is also changed.  Now the driver will
      call usb_queue_reset_device() instead of calling usb_reset_device()
      directly.  This avoids a deadlock that would arise when a device is
      unplugged: The hid_reset() routine runs as a workqueue item, a reset
      attempt after the device has been unplugged will fail, failure will
      cause usbhid to be unbound, and the disconnect routine will try to do
      cancel_work_sync().  The usb_queue_reset_device() implementation is
      carefully written to handle scenarios like this one properly.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      8f507ef5
  3. 26 8月, 2014 1 次提交
  4. 21 8月, 2014 3 次提交
  5. 20 8月, 2014 2 次提交
  6. 19 8月, 2014 6 次提交
  7. 18 8月, 2014 2 次提交
    • N
      md/raid6: avoid data corruption during recovery of double-degraded RAID6 · 9c4bdf69
      NeilBrown 提交于
      During recovery of a double-degraded RAID6 it is possible for
      some blocks not to be recovered properly, leading to corruption.
      
      If a write happens to one block in a stripe that would be written to a
      missing device, and at the same time that stripe is recovering data
      to the other missing device, then that recovered data may not be written.
      
      This patch skips, in the double-degraded case, an optimisation that is
      only safe for single-degraded arrays.
      
      Bug was introduced in 2.6.32 and fix is suitable for any kernel since
      then.  In an older kernel with separate handle_stripe5() and
      handle_stripe6() functions the patch must change handle_stripe6().
      
      Cc: stable@vger.kernel.org (2.6.32+)
      Fixes: 6c0069c0
      Cc: Yuri Tikhonov <yur@emcraft.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Reported-by: N"Manibalan P" <pmanibalan@amiindia.co.in>
      Tested-by: N"Manibalan P" <pmanibalan@amiindia.co.in>
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1090423Signed-off-by: NNeilBrown <neilb@suse.de>
      Acked-by: NDan Williams <dan.j.williams@intel.com>
      9c4bdf69
    • N
      md/raid5: avoid livelock caused by non-aligned writes. · a40687ff
      NeilBrown 提交于
      If a stripe in a raid6 array received a write to each data block while
      the array is degraded, and if any of these writes to a missing device
      are not page-aligned, then a live-lock happens.
      
      In this case the P and Q blocks need to be read so that the part of
      the missing block which is *not* being updated by the write can be
      constructed.  Due to a logic error, these blocks are not loaded, so
      the update cannot proceed and the stripe is 'handled' repeatedly in an
      infinite loop.
      
      This bug is unlikely as most writes are page aligned.  However as it
      can lead to a livelock it is suitable for -stable.  It was introduced
      in 3.16.
      
      Cc: stable@vger.kernel.org (v3.16)
      Fixed: 67f45548Signed-off-by: NNeilBrown <neilb@suse.de>
      a40687ff
  8. 16 8月, 2014 21 次提交