15 Nov, 2014

40 commits

  • commit ab0543de6ff0877474f57a5aafbb51a61e88676f upstream.

    Fix CE event being reported as HW_EVENT_ERR_UNCORRECTED.

    Signed-off-by: Jason Baron
    Link: http://lkml.kernel.org/r/7aee8e244a32ff86b399a8f966c4aae70296aae0.1413405053.git.jbaron@akamai.com
    Signed-off-by: Borislav Petkov
    Signed-off-by: Greg Kroah-Hartman

    Jason Baron
     
  • commit 84ce0f0e94ac97217398b3b69c21c7a62ebeed05 upstream.

    When sg_scsi_ioctl() fails to prepare request to submit in
    blk_rq_map_kern() we jump to a label where we just end up copying
    (luckily zeroed-out) kernel buffer to userspace instead of reporting
    error. Fix the problem by jumping to the right label.

    CC: Jens Axboe
    CC: linux-scsi@vger.kernel.org
    Coverity-id: 1226871
    Signed-off-by: Jan Kara
    Signed-off-by: Greg Kroah-Hartman

    Fixed up the, now unused, out label.

    Signed-off-by: Jens Axboe

    Jan Kara
     
  • commit ea5d05b34aca25c066e0699512d0ffbd8ee6ac3e upstream.

    If __bitmap_shift_left() or __bitmap_shift_right() are asked to shift by
    a multiple of BITS_PER_LONG, they will try to shift a long value by
    BITS_PER_LONG bits which is undefined. Change the functions to avoid
    the undefined shift.

    Coverity id: 1192175
    Coverity id: 1192174
    Signed-off-by: Jan Kara
    Cc: Rasmus Villemoes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit 2f7dd7a4100ad4affcb141605bef178ab98ccb18 upstream.

    The cgroup iterators yield css objects that have not yet gone through
    css_online(), but they are not complete memcgs at this point and so the
    memcg iterators should not return them. Commit d8ad30559715 ("mm/memcg:
    iteration skip memcgs not yet fully initialized") set out to implement
    exactly this, but it uses CSS_ONLINE, a cgroup-internal flag that does
    not meet the ordering requirements for memcg, and so the iterator may
    skip over initialized groups, or return partially initialized memcgs.

    The cgroup core can not reasonably provide a clear answer on whether the
    object around the css has been fully initialized, as that depends on
    controller-specific locking and lifetime rules. Thus, introduce a
    memcg-specific flag that is set after the memcg has been initialized in
    css_online(), and read before mem_cgroup_iter() callers access the memcg
    members.

    Signed-off-by: Johannes Weiner
    Cc: Tejun Heo
    Acked-by: Michal Hocko
    Cc: Hugh Dickins
    Cc: Peter Zijlstra
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Johannes Weiner
     
  • commit 401507d67d5c2854f5a88b3f93f64fc6f267bca5 upstream.

    Commit ff7ee93f4715 ("cgroup/kmemleak: Annotate alloc_page() for cgroup
    allocations") introduces kmemleak_alloc() for alloc_page_cgroup(), but
    corresponding kmemleak_free() is missing, which makes kmemleak be
    wrongly disabled after memory offlining. Log is pasted at the end of
    this commit message.

    This patch add kmemleak_free() into free_page_cgroup(). During page
    offlining, this patch removes corresponding entries in kmemleak rbtree.
    After that, the freed memory can be allocated again by other subsystems
    without killing kmemleak.

    bash # for x in 1 2 3 4; do echo offline > /sys/devices/system/memory/memory$x/state ; sleep 1; done ; dmesg | grep leak

    Offlined Pages 32768
    kmemleak: Cannot insert 0xffff880016969000 into the object search tree (overlaps existing)
    CPU: 0 PID: 412 Comm: sleep Not tainted 3.17.0-rc5+ #86
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
    dump_stack+0x46/0x58
    create_object+0x266/0x2c0
    kmemleak_alloc+0x26/0x50
    kmem_cache_alloc+0xd3/0x160
    __sigqueue_alloc+0x49/0xd0
    __send_signal+0xcb/0x410
    send_signal+0x45/0x90
    __group_send_sig_info+0x13/0x20
    do_notify_parent+0x1bb/0x260
    do_exit+0x767/0xa40
    do_group_exit+0x44/0xa0
    SyS_exit_group+0x17/0x20
    system_call_fastpath+0x16/0x1b

    kmemleak: Kernel memory leak detector disabled
    kmemleak: Object 0xffff880016900000 (size 524288):
    kmemleak: comm "swapper/0", pid 0, jiffies 4294667296
    kmemleak: min_count = 0
    kmemleak: count = 0
    kmemleak: flags = 0x1
    kmemleak: checksum = 0
    kmemleak: backtrace:
    log_early+0x63/0x77
    kmemleak_alloc+0x4b/0x50
    init_section_page_cgroup+0x7f/0xf5
    page_cgroup_init+0xc5/0xd0
    start_kernel+0x333/0x408
    x86_64_start_reservations+0x2a/0x2c
    x86_64_start_kernel+0xf5/0xfc

    Fixes: ff7ee93f4715 (cgroup/kmemleak: Annotate alloc_page() for cgroup allocations)
    Signed-off-by: Wang Nan
    Acked-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Steven Rostedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Wang Nan
     
  • commit 5ddacbe92b806cd5b4f8f154e8e46ac267fff55c upstream.

    Compound page should be freed by put_page() or free_pages() with correct
    order. Not doing so will cause tail pages leaked.

    The compound order can be obtained by compound_order() or use
    HPAGE_PMD_ORDER in our case. Some people would argue the latter is
    faster but I prefer the former which is more general.

    This bug was observed not just on our servers (the worst case we saw is
    11G leaked on a 48G machine) but also on our workstations running Ubuntu
    based distro.

    $ cat /proc/vmstat | grep thp_zero_page_alloc
    thp_zero_page_alloc 55
    thp_zero_page_alloc_failed 0

    This means there is (thp_zero_page_alloc - 1) * (2M - 4K) memory leaked.

    Fixes: 97ae17497e99 ("thp: implement refcounting for huge zero page")
    Signed-off-by: Yu Zhao
    Acked-by: Kirill A. Shutemov
    Cc: Andrea Arcangeli
    Cc: Mel Gorman
    Cc: David Rientjes
    Cc: Bob Liu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Yu Zhao
     
  • commit 5417421b270229bfce0795ccc99a4b481e4954ca upstream.

    Resources scif1_resources & scif2_resources overlap. Actual SCIF region
    size is 0x10.

    This is regression from commit d850acf975be ("sh: Declare SCIF register
    base and IRQ as resources")

    Signed-off-by: Andriy Skulysh
    Acked-by: Laurent Pinchart
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Andriy Skulysh
     
  • commit 191252837626fca0de694c18bb2aa64c118eda89 upstream.

    Write may be called from interrupt context so make sure to use
    GFP_ATOMIC for all allocations in write.

    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 90a646c770c50cc206ceba0d7b50453c46c13c36 upstream.

    This commit fixes the following oops:

    [10238.622067] scsi host3: uas_eh_bus_reset_handler start
    [10240.766164] usb 3-4: reset SuperSpeed USB device number 3 using xhci_hcd
    [10245.779365] usb 3-4: device descriptor read/8, error -110
    [10245.883331] usb 3-4: reset SuperSpeed USB device number 3 using xhci_hcd
    [10250.897603] usb 3-4: device descriptor read/8, error -110
    [10251.058200] BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
    [10251.058244] IP: [] xhci_check_streams_endpoint+0x91/0x140

    [10251.059473] Call Trace:
    [10251.059487] [] xhci_calculate_streams_and_bitmask+0xbc/0x130
    [10251.059520] [] xhci_alloc_streams+0x10f/0x5a0
    [10251.059548] [] ? check_preempt_curr+0x75/0xa0
    [10251.059575] [] ? ttwu_do_wakeup+0x2c/0x100
    [10251.059601] [] ? ttwu_do_activate.constprop.111+0x66/0x70
    [10251.059635] [] usb_alloc_streams+0xab/0xf0
    [10251.059662] [] uas_configure_endpoints+0x128/0x150 [uas]
    [10251.059694] [] uas_post_reset+0x3c/0xb0 [uas]
    [10251.059722] [] usb_reset_device+0x1b9/0x2a0
    [10251.059749] [] uas_eh_bus_reset_handler+0xb2/0x190 [uas]
    [10251.059781] [] scsi_try_bus_reset+0x53/0x110
    [10251.059808] [] scsi_eh_bus_reset+0xf7/0x270

    The problem is the following call sequence (simplified):

    1) usb_reset_device
    2) usb_reset_and_verify_device
    2) hub_port_init
    3) hub_port_finish_reset
    3) xhci_discover_or_reset_device
    This frees xhci->devs[slot_id]->eps[ep_index].ring for all eps but 0
    4) usb_get_device_descriptor
    This fails
    5) hub_port_init fails
    6) usb_reset_and_verify_device fails, does not restore device config
    7) uas_post_reset
    8) xhci_alloc_streams
    NULL deref on the free-ed ring

    This commit fixes this by not allowing usb_alloc_streams to continue if
    the device is not configured.

    Note that we do allow usb_free_streams to continue after a (logical)
    disconnect, as it is necessary to explicitly free the streams at the xhci
    controller level.

    Signed-off-by: Hans de Goede
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit e681286de221af78fc85db9222b6a203148c005a upstream.

    Write may be called from interrupt context so make sure to use
    GFP_ATOMIC for all allocations in write.

    Fixes: 0d930e51cfe6 ("USB: opticon: Add Opticon OPN2001 write support")
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 93c9bf4d1838d5851a18ca398b0ad66397f05056 upstream.

    Sometimes mass-storage devices using the Bulk-only transport will
    mistakenly skip the data phase of a command. Rather than sending the
    data expected by the host or sending a zero-length packet, they go
    directly to the status phase and send the CSW.

    This causes problems for usb-storage, for obvious reasons. The driver
    will interpret the CSW as a short data transfer and will wait to
    receive a CSW. The device won't have anything left to send, so the
    command eventually times out.

    The SCSI layer doesn't retry commands after they time out (this is a
    relatively recent change). Therefore we should do our best to detect
    a skipped data phase and handle it promptly.

    This patch adds code to do that. If usb-storage receives a short
    13-byte data transfer from the device, and if the first four bytes of
    the data match the CSW signature, the driver will set the residue to
    the full transfer length and interpret the data as a CSW.

    This fixes Bugzilla #86611.

    Signed-off-by: Alan Stern
    CC: Matthew Dharm
    Tested-by: Paul Osmialowski
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • commit 0725dda207e95ff25f1aa01432250323e0ec49d6 upstream.

    Some USB-audio devices show weird sysfs warnings at disconnecting the
    devices, e.g.
    usb 1-3: USB disconnect, device number 3
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 973 at fs/sysfs/group.c:216 device_del+0x39/0x180()
    sysfs group ffffffff8183df40 not found for kobject 'midiC1D0'
    Call Trace:
    [] ? dump_stack+0x49/0x71
    [] ? warn_slowpath_common+0x82/0xb0
    [] ? warn_slowpath_fmt+0x45/0x50
    [] ? device_del+0x39/0x180
    [] ? device_unregister+0x9/0x20
    [] ? device_destroy+0x34/0x40
    [] ? snd_unregister_device+0x7f/0xd0 [snd]
    [] ? snd_rawmidi_dev_disconnect+0xce/0x100 [snd_rawmidi]
    [] ? snd_device_disconnect+0x62/0x90 [snd]
    [] ? snd_device_disconnect_all+0x3c/0x60 [snd]
    [] ? snd_card_disconnect+0x124/0x1a0 [snd]
    [] ? usb_audio_disconnect+0x88/0x1c0 [snd_usb_audio]
    [] ? usb_unbind_interface+0x5e/0x1b0 [usbcore]
    [] ? __device_release_driver+0x79/0xf0
    [] ? device_release_driver+0x25/0x40
    [] ? bus_remove_device+0xf1/0x130
    [] ? device_del+0x109/0x180
    [] ? usb_disable_device+0x95/0x1f0 [usbcore]
    [] ? usb_disconnect+0x8f/0x190 [usbcore]
    [] ? hub_thread+0x539/0x13a0 [usbcore]
    [] ? sched_clock_local+0x15/0x80
    [] ? sched_clock_cpu+0xb8/0xd0
    [] ? bit_waitqueue+0xb0/0xb0
    [] ? usb_port_resume+0x430/0x430 [usbcore]
    [] ? usb_port_resume+0x430/0x430 [usbcore]
    [] ? kthread+0xce/0xf0
    [] ? kthread_create_on_node+0x1c0/0x1c0
    [] ? ret_from_fork+0x7c/0xb0
    [] ? kthread_create_on_node+0x1c0/0x1c0
    ---[ end trace 40b1928d1136b91e ]---

    This comes from the fact that usb-audio driver may receive the
    disconnect callback multiple times, per each usb interface. When a
    device has both audio and midi interfaces, it gets called twice, and
    currently the driver tries to release resources at the last call.
    At this point, the first parent interface has been already deleted,
    thus deleting a child of the first parent hits such a warning.

    For fixing this problem, we need to call snd_card_disconnect() and
    cancel pending operations at the very first disconnect while the
    release of the whole objects waits until the last disconnect call.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=80931
    Reported-and-tested-by: Tomas Gayoso
    Reported-and-tested-by: Chris J Arges
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 1af39588f84c7c18f8c6d88342f36513a4ce383c upstream.

    This device needs the quirk as well.

    Tested-by: Kevin Fenzi
    Signed-off-by: Adel Gadllah
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Adel Gadllah
     
  • commit 29d05c2ecf396161ef2938a0635707ef5685ef58 upstream.

    This device needs the quirk as well.

    Signed-off-by: Adel Gadllah
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Adel Gadllah
     
  • commit bfe3c873e978d78b542a5852575dd74f4d1a5838 upstream.

    Enable the always-poll quirk for Elan Touchscreens found on some recent
    Samsung laptops.

    Without this quirk the device keeps disconnecting from the bus (and is
    re-enumerated) unless opened (and kept open, should an input event
    occur).

    Note that while the device can be run-time suspended, the autosuspend
    timeout must be high enough to allow the device to be polled at least
    once before being suspended. Specifically, using autosuspend_delay_ms=0
    will still cause the device to disconnect on input events.

    Signed-off-by: Johan Hovold
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 0b750b3baa2d64f1b77aecc10f20deeb28efe60d upstream.

    Add quirk to make sure that a device is always polled for input events
    even if it hasn't been opened.

    This is needed for devices that disconnects from the bus unless the
    interrupt endpoint has been polled at least once or when not responding
    to an input event (e.g. after having shut down X).

    Signed-off-by: Johan Hovold
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit d749947561af5996ccc076b2ffcc5f48b1be5d74 upstream.

    Yet another device affected by this.

    Tested-by: Kevin Fenzi
    Signed-off-by: Adel Gadllah
    Signed-off-by: Greg Kroah-Hartman

    Adel Gadllah
     
  • commit 876af5d454548be40327ba9efea4bc92a8575019 upstream.

    Currently this quirk is enabled for the model with the device id 0x0089, it
    is needed for the 0x009b model, which is found on the Fujitsu Lifebook u904
    as well.

    Signed-off-by: Adel Gadllah
    Signed-off-by: Greg Kroah-Hartman

    Adel Gadllah
     
  • commit c68929f75dfcb6354918862b91b5778585de1fa5 upstream.

    Enable device-qualifier quirk for Elan Touchscreen, which often fails to
    handle requests for the device_descriptor.

    Note that the device sometimes do respond properly with a Request Error
    (three times as USB core retries), but usually fails to respond at all.
    When this happens any further descriptor requests also fails, for
    example:

    [ 1528.688934] usb 2-7: new full-speed USB device number 4 using xhci_hcd
    [ 1530.945588] usb 2-7: unable to read config index 0 descriptor/start: -71
    [ 1530.945592] usb 2-7: can't read configurations, error -71

    This has been observed repeating for over a minute before eventual
    successful enumeration.

    Reported-by: Drew Von Spreecken
    Reported-by: Greg Kroah-Hartman
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 2a159389bf5d962359349a76827b2f683276a1c7 upstream.

    Add new quirk for devices that cannot handle requests for the
    device_qualifier descriptor.

    A USB-2.0 compliant device must respond to requests for the
    device_qualifier descriptor (even if it's with a request error), but at
    least one device is known to misbehave after such a request.

    Suggested-by: Bjørn Mork
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 53185b3a441a6cc9bb3f57e924342d249138dcd6 upstream.

    Commit 468bcc2a2ca ("usb: musb: dsps: kill OTG timer on suspend") stopped
    the timer in suspend path but forgot the re-enable it in the resume
    path. This patch fixes the behaviour.

    Fixes 468bcc2a2ca "usb: musb: dsps: kill OTG timer on suspend"
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Sebastian Andrzej Siewior
     
  • commit d2e6d62c9cbbc2da4211f672dbeea08960e29a80 upstream.

    commit c58d80f52 ("usb: musb: Ensure that cppi41 timer gets armed on
    premature DMA TX irq") fixed hrtimer scheduling bug. There is one left
    which does not trigger that often.
    The following scenario is still possible:

    lock(&x->lock);
    hrtimer_start(&x->t);
    unlock(&x->lock);

    expires:
    t->function();
    lock(&x->lock);
    lock(&x->lock); if (!hrtimer_queued(&x->t))
    hrtimer_start(&x->t);
    unlock(&x->lock);

    if (!list_empty(x->early_tx_list))
    ret = HRTIMER_RESTART;
    -> hrtimer_forward_now(...)
    } else
    ret = HRTIMER_NORESTART;

    unlock(&x->lock);

    and the timer callback returns HRTIMER_RESTART for an armed timer. This
    is wrong and we run into the BUG_ON() in __run_hrtimer().
    This can happens on SMP or PREEMPT-RT.
    The patch fixes the problem by only starting the timer if the timer is
    not yet queued.

    Reported-by: Torben Hohn
    Signed-off-by: Thomas Gleixner
    [bigeasy: collected information and created a patch + description based
    on it]
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • commit 2b9375b91bef65b837bed61a05fb387159b38ddf upstream.

    If PM_RUNTIME is enabled, it is easy to trigger the following backtrace
    on pxa2xx hosts:

    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 1 at /home/lumag/linux/arch/arm/mach-pxa/clock.c:35 clk_disable+0xa0/0xa8()
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-00007-g1b3d2ee-dirty #104
    [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [] (show_stack) from [] (warn_slowpath_common+0x6c/0x8c)
    [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24)
    [] (warn_slowpath_null) from [] (clk_disable+0xa0/0xa8)
    [] (clk_disable) from [] (pxa2xx_spi_suspend+0x2c/0x34)
    [] (pxa2xx_spi_suspend) from [] (platform_pm_suspend+0x2c/0x54)
    [] (platform_pm_suspend) from [] (dpm_run_callback.isra.14+0x2c/0x74)
    [] (dpm_run_callback.isra.14) from [] (__device_suspend+0x120/0x2f8)
    [] (__device_suspend) from [] (dpm_suspend+0x50/0x208)
    [] (dpm_suspend) from [] (suspend_devices_and_enter+0x8c/0x3a0)
    [] (suspend_devices_and_enter) from [] (pm_suspend+0x214/0x2a8)
    [] (pm_suspend) from [] (test_suspend+0x14c/0x1dc)
    [] (test_suspend) from [] (do_one_initcall+0x8c/0x1fc)
    [] (do_one_initcall) from [] (kernel_init_freeable+0xf4/0x1b4)
    [] (kernel_init_freeable) from [] (kernel_init+0x8/0xec)
    [] (kernel_init) from [] (ret_from_fork+0x14/0x24)
    ---[ end trace 46524156d8faa4f6 ]---

    This happens because suspend function tries to disable a clock that is
    already disabled by runtime_suspend callback. Add if
    (!pm_runtime_suspended()) checks to suspend/resume path.

    Fixes: 7d94a505858 (spi/pxa2xx: add support for runtime PM)
    Signed-off-by: Dmitry Eremin-Solenikov
    Reported-by: Andrea Adami
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Eremin-Solenikov
     
  • commit 5cc7b04740effa5cc0af53f434134b5859d58b73 upstream.

    There are only 4 CTAR registers (CTAR0 - CTAR3) so we can only use the
    lower 2 bits of the chip select to select a CTAR register.
    SPI_PUSHR_CTAS used the lower 3 bits which would result in wrong bit values
    if the chip selects 4/5 are used. For those chip selects SPI_CTAR even
    calculated offsets of non-existing registers.

    Signed-off-by: Alexander Stein
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Alexander Stein
     
  • commit 3ffa6158f002e096d28ede71be4e0ee8ab20baa2 upstream.

    When mapped RX DMA entries are unmapped in an error condition when DMA
    is firstly configured in the driver, the number of TX DMA entries was
    passed in, which is incorrect

    Signed-off-by: Ray Jui
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Ray Jui
     
  • commit 1200a82a59b6aa65758ccc92c3447b98c53cd7a2 upstream.

    On ISOC endpoints the last trb_pool entry used as a
    LINK TRB is not getting zeroed out correctly due to
    memset being called incorrectly and in the wrong place.
    If pool allocated from DMA was not zero-initialized
    to begin with this will result in the size and ctrl
    values being random garbage. Call memset correctly after
    assignment of the trb_link pointer.

    Fixes: f6bafc6a1c ("usb: dwc3: convert TRBs into bitshifts")
    Signed-off-by: Jack Pham
    Signed-off-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Jack Pham
     
  • commit 664d6a792785cc677c2091038ce10322c8d04ae1 upstream.

    0x1b75 0xa200 AirLive WN-200USB wireless 11b/g/n dongle

    References: https://bugs.debian.org/766802
    Reported-by: Martin Mokrejs
    Signed-off-by: Cyril Brulebois
    Acked-by: Stanislaw Gruszka
    Signed-off-by: John W. Linville
    Signed-off-by: Greg Kroah-Hartman

    Cyril Brulebois
     
  • commit 6a06e554daef86c4e8d290284927b081fedb249e upstream.

    0x0b05 0x17e8 RT5372 USB 2.0 bgn 2x2 ASUS USB-N14
    0x0411 0x0253 RT5572 USB 2.0 abgn 2x2 BUFFALO WLP-U2-300D
    0x0df6 0x0078 RT???? Sitecom N300

    Cc: Ivo van Doorn
    Cc: Helmut Schaa
    Cc: John W. Linville
    Cc: users@rt2x00.serialmonkey.com
    Cc: linux-wireless@vger.kernel.org
    Signed-off-by: Xose Vazquez Perez
    Signed-off-by: John W. Linville
    Signed-off-by: Greg Kroah-Hartman

    Xose Vazquez Perez
     
  • commit ac0372abf8524a7572a9cdaac6495eb2eba20457 upstream.

    Signed-off-by: Canek Peláez Valdés
    Signed-off-by: John W. Linville
    Signed-off-by: Greg Kroah-Hartman

    Canek Peláez Valdés
     
  • commit 012eee1522318b5ccd64d277d50ac32f7e9974fe upstream.

    Port layout:

    0: QCDM/DIAG
    1: NMEA
    2: AT
    3: AT/PPP

    Signed-off-by: Dan Williams
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     
  • commit 2d0eb862dd477c3c4f32b201254ca0b40e6f465c upstream.

    Add VID/PID for Telit LE910 modem. Interfaces description is almost the
    same than LE920, except that the qmi interface is number 2 (instead than
    5).

    Signed-off-by: Daniele Palmas
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Daniele Palmas
     
  • commit 2c4e3dbf63b39d44a291db70016c718f45d9cd46 upstream.

    When __usb_find_phy_dev() does not return error and
    try_module_get() fails, return -ENODEV.

    Signed-off-by: Arjun Sreedharan
    Signed-off-by: Felipe Balbi
    Cc: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Arjun Sreedharan
     
  • commit 4473d054ceb572557954f9536731d39b20937b0c upstream.

    Make sure to only raise DTR on transitions from B0 in set_termios.

    Also allow set_termios to be called from open with a termios_old of
    NULL. Note that DTR will not be raised prematurely in this case.

    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit cf84a691a61606a2e7269907d3727e2d9fa148ee upstream.

    Add device-id entry for GW Instek AFG-2225, which has a byte swapped
    bInterfaceSubClass (0x20).

    Reported-by: Karl Palsson
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 7f2719f0003da1ad13124ef00f48d7514c79e30d upstream.

    An official recent Windows driver from FTDI detects counterfeit devices
    and reprograms the internal EEPROM containing the USB PID to 0, effectively
    bricking the device.

    Add support for this VID/PID pair to correctly bind the driver on these
    devices.

    See:
    http://hackaday.com/2014/10/22/watch-that-windows-update-ftdi-drivers-are-killing-fake-chips/

    Signed-off-by: Perry Hung
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Perry Hung
     
  • commit edd74ffab1f6909eee400c7de8ce621870aacac9 upstream.

    Add new IDs for the Xsens Awinda Station and Awinda Dongle.

    While at it, order the definitions by PID and add a logical separation
    between devices using Xsens' VID and those using FTDI's VID.

    Signed-off-by: Frans Klaver
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Frans Klaver
     
  • commit 35cc83eab097e5720a9cc0ec12bdc3a726f58381 upstream.

    Enable Silicon Labs Ember VID chips to enumerate with the cp210x usb serial
    driver. EM358x devices operating with the Ember Z-Net 5.1.2 stack may now
    connect to host PCs over a USB serial link.

    Signed-off-by: Nathaniel Ting
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Nathaniel Ting
     
  • commit 547039ec502076e60034eeb79611df3433a99b7d upstream.

    uart_get_baud_rate() will return baud == 0 if the max rate is set
    to the "magic" 38400 rate and the SPD_* flags are also specified.
    On the first iteration, if the current baud rate is higher than the
    max, the baud rate is clamped at the max (which in the degenerate
    case is 38400). On the second iteration, the now-"magic" 38400 baud
    rate selects the possibly higher alternate baud rate indicated by
    the SPD_* flag. Since only two loop iterations are performed, the
    loop is exited, a kernel WARNING is generated and a baud rate of
    0 is returned.

    Reproducible with:
    setserial /dev/ttyS0 spd_hi base_baud 38400

    Only perform the "magic" 38400 -> SPD_* baud transform on the first
    loop iteration, which prevents the degenerate case from recognizing
    the clamped baud rate as the "magic" 38400 value.

    Reported-by: Robert Święcki
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • commit b598aacc29331e7e638cd509108600e916c6331b upstream.

    "raw" is a property of a channel, but should not be part of the name of
    channel.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Lars-Peter Clausen
     
  • commit 79fa64eb2ee8ccb4bcad7f54caa2699730b10b22 upstream.

    We should check if a channel is enabled, not if no channels are enabled.

    Fixes: 550268ca1111 ("staging:iio: scrap scan_count and ensure all drivers use active_scan_mask")
    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Lars-Peter Clausen