Permalink
Commits on Feb 18, 2018
  1. Generic Rotary Encoder overlay for multiple instances (#2388)

    ismailof authored and pelwell committed Feb 18, 2018
    Modify the rotary-encoder overlay to support multiple instances.
Commits on Feb 15, 2018
  1. ipv6: fix NULL dereference in ip6_route_dev_notify() (#2381)

    paralin authored and pelwell committed Feb 15, 2018
    commit 12d94a8 upstream.
    
    Based on a syzkaller report [1], I found that a per cpu allocation
    failure in snmp6_alloc_dev() would then lead to NULL dereference in
    ip6_route_dev_notify().
    
    It seems this is a very old bug, thus no Fixes tag in this submission.
    
    Let's add in6_dev_put_clear() helper, as we will probably use
    it elsewhere (once available/present in net-next)
    
    [1]
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN
    Dumping ftrace buffer:
       (ftrace buffer empty)
    Modules linked in:
    CPU: 1 PID: 17294 Comm: syz-executor6 Not tainted 4.13.0-rc2+ #10
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    task: ffff88019f456680 task.stack: ffff8801c6e58000
    RIP: 0010:__read_once_size include/linux/compiler.h:250 [inline]
    RIP: 0010:atomic_read arch/x86/include/asm/atomic.h:26 [inline]
    RIP: 0010:refcount_sub_and_test+0x7d/0x1b0 lib/refcount.c:178
    RSP: 0018:ffff8801c6e5f1b0 EFLAGS: 00010202
    RAX: 0000000000000037 RBX: dffffc0000000000 RCX: ffffc90005d25000
    RDX: ffff8801c6e5f218 RSI: ffffffff82342bbf RDI: 0000000000000001
    RBP: ffff8801c6e5f240 R08: 0000000000000001 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: 1ffff10038dcbe37
    R13: 0000000000000006 R14: 0000000000000001 R15: 00000000000001b8
    FS:  00007f21e0429700(0000) GS:ffff8801dc100000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001ddbc22000 CR3: 00000001d632b000 CR4: 00000000001426e0
    DR0: 0000000020000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
    Call Trace:
     refcount_dec_and_test+0x1a/0x20 lib/refcount.c:211
     in6_dev_put include/net/addrconf.h:335 [inline]
     ip6_route_dev_notify+0x1c9/0x4a0 net/ipv6/route.c:3732
     notifier_call_chain+0x136/0x2c0 kernel/notifier.c:93
     __raw_notifier_call_chain kernel/notifier.c:394 [inline]
     raw_notifier_call_chain+0x2d/0x40 kernel/notifier.c:401
     call_netdevice_notifiers_info+0x51/0x90 net/core/dev.c:1678
     call_netdevice_notifiers net/core/dev.c:1694 [inline]
     rollback_registered_many+0x91c/0xe80 net/core/dev.c:7107
     rollback_registered+0x1be/0x3c0 net/core/dev.c:7149
     register_netdevice+0xbcd/0xee0 net/core/dev.c:7587
     register_netdev+0x1a/0x30 net/core/dev.c:7669
     loopback_net_init+0x76/0x160 drivers/net/loopback.c:214
     ops_init+0x10a/0x570 net/core/net_namespace.c:118
     setup_net+0x313/0x710 net/core/net_namespace.c:294
     copy_net_ns+0x27c/0x580 net/core/net_namespace.c:418
     create_new_namespaces+0x425/0x880 kernel/nsproxy.c:107
     unshare_nsproxy_namespaces+0xae/0x1e0 kernel/nsproxy.c:206
     SYSC_unshare kernel/fork.c:2347 [inline]
     SyS_unshare+0x653/0xfa0 kernel/fork.c:2297
     entry_SYSCALL_64_fastpath+0x1f/0xbe
    RIP: 0033:0x4512c9
    RSP: 002b:00007f21e0428c08 EFLAGS: 00000216 ORIG_RAX: 0000000000000110
    RAX: ffffffffffffffda RBX: 0000000000718150 RCX: 00000000004512c9
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000062020200
    RBP: 0000000000000086 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000216 R12: 00000000004b973d
    R13: 00000000ffffffff R14: 000000002001d000 R15: 00000000000002dd
    Code: 50 2b 34 82 c7 00 f1 f1 f1 f1 c7 40 04 04 f2 f2 f2 c7 40 08 f3 f3
    f3 f3 e8 a1 43 39 ff 4c 89 f8 48 8b 95 70 ff ff ff 48 c1 e8 03 <0f> b6
    0c 18 4c 89 f8 83 e0 07 83 c0 03 38 c8 7c 08 84 c9 0f 85
    RIP: __read_once_size include/linux/compiler.h:250 [inline] RSP:
    ffff8801c6e5f1b0
    RIP: atomic_read arch/x86/include/asm/atomic.h:26 [inline] RSP:
    ffff8801c6e5f1b0
    RIP: refcount_sub_and_test+0x7d/0x1b0 lib/refcount.c:178 RSP:
    ffff8801c6e5f1b0
    ---[ end trace e441d046c6410d31 ]---
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
Commits on Feb 9, 2018
Commits on Feb 6, 2018
  1. Add missing SND_PISOUND selects dependency to SND_RAWMIDI

    simonvanderveldt authored and pelwell committed Feb 6, 2018
    Without it the Pisound module fails to compile.
    See #2366
    
    Signed-off-by: Simon van der Veldt <simon.vanderveldt@gmail.com>
  2. BCM270X_DT: More cosmetic DT changes

    pelwell committed Feb 6, 2018
    Remove unnecessary duplicate labels (but keep spi0).
    
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  3. drm/vc4: Add support for NV21 and NV61.

    6by9 authored and popcornmix committed Nov 16, 2017
    NV12 (YUV420 2 plane) and NV16 (YUV422 2 plane) were
    supported, but NV21 and NV61 (same but with Cb and Cr
    swapped) weren't. Add them.
    
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1f50799525e3401551dff2b0b2828b9ab892f75f.1510841336.git.dave.stevenson@raspberrypi.org
    (cherry picked from commit cb20dd1)
  4. drm/vc4: Use .pixel_order instead of custom .flip_cbcr

    6by9 authored and popcornmix committed Nov 16, 2017
    The hardware has enums for altering the Cr and Cb order,
    so use this instead of having a flag which swaps the
    order the pointers are presented to the hardware
    (that only worked for 3 plane formats anyway).
    
    Explicitly sets .pixel_order in each case, rather than
    relying on then default XYCBCR order being a value 0.
    
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/563872b69c1e5df142cb15ebfca7f20056b8a64c.1510841336.git.dave.stevenson@raspberrypi.org
    (cherry picked from commit 090cb0c)
  5. drm/vc4: Add support for DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888

    6by9 authored and popcornmix committed Nov 16, 2017
    Filling out the list of supported formats based on those the
    hardware can support.
    
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/b551205d1c33fa49eef2c33ed2d60c5339b2f299.1510841336.git.dave.stevenson@raspberrypi.org
    (cherry picked from commit 88f8156)
  6. drm/vc4: Account for interrupts in flight

    stschake authored and popcornmix committed Nov 10, 2017
    Synchronously disable the IRQ to make the following cancel_work_sync
    invocation effective.
    
    An interrupt in flight could enqueue further overflow mem work. As we
    free the binner BO immediately following vc4_irq_uninstall this caused
    a NULL pointer dereference in the work callback vc4_overflow_mem_work.
    
    Link: anholt#114
    Signed-off-by: Stefan Schake <stschake@gmail.com>
    Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
    (cherry picked from commit 253696c)
  7. drm/panel: rpi-touchscreen: propagate errors in rpi_touchscreen_i2c_r…

    Dan Carpenter authored and popcornmix committed Oct 20, 2017
    …ead()
    
    There is one caller which checks whether rpi_touchscreen_i2c_read()
    returns negative error codes.  Currently it can't because negative
    error codes are truncated to u8, but that's easy to fix if we change the
    type to int.
    
    Fixes: 2f733d6 ("drm/panel: Add support for the Raspberry Pi 7" Touchscreen.")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171020002845.kar2wg7gqxg7tzqi@mwanda
    Reviewed-by: Eric Anholt <eric@anholt.net>
    (cherry picked from commit 85b4587)
  8. drm/vc4: Move the DSI clock divider workaround closer to the clock call.

    anholt authored and popcornmix committed Aug 15, 2017
    We want the adjusted_mode->clock to be the actual clock we're
    expecting to program, so that consumers see the right values for clock
    and vrefresh.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170815234722.20700-1-eric@anholt.net
    Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    (cherry picked from commit d409eea)
  9. drm/vc4: Skip ULPS latching when we're in that ULPS state already.

    anholt authored and popcornmix committed Oct 31, 2017
    It seems that trying to go from unlatched to unlatched will time out
    waiting for STOP, and we can just skip that.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
  10. drm/vc4: Fix crash if we have to unbind HDMI.

    anholt authored and popcornmix committed Nov 13, 2017
    We need the card to unregister before the codec that the card
    references.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
  11. drm/vc4: Fix leak of HDMI EDID

    anholt authored and popcornmix committed Aug 8, 2017
    We don't keep a pointer to it around anywhere, so it's our job to free
    it.
    
    Cc: Stefan Wahren <stefan.wahren@i2se.com>
    Link: anholt#101
    Fixes: c8b75bc ("drm/vc4: Add KMS support for Raspberry Pi.")
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170808205605.4432-1-eric@anholt.net
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
    (cherry picked from commit 5afe0e6)
  12. drm/vc4: Fix sleeps during the IRQ handler for DSI transactions.

    anholt authored and popcornmix committed Oct 14, 2017
    VC4's DSI1 has a bug where the AXI connection is broken for 32-bit
    writes from the CPU, so we use the DMA engine to DMA 32-bit values
    into registers instead.  That sleeps, so we can't do it from the top
    half.
    
    As a solution, use an interrupt thread so that all our writes happen
    when sleeping is is allowed.
    
    v2: Use IRQF_ONESHOT (suggested by Boris)
    v3: Style nitpicks.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171014001255.32005-1-eric@anholt.net
    Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com> (v2)
    (cherry picked from commit af0c8c1)
  13. drm/vc4: fix include notation and remove -Iinclude/drm flag

    masahir0y authored and popcornmix committed May 18, 2017
    Include <drm/*.h> instead of relative path from include/drm, then
    remove the -Iinclude/drm compiler flag.
    
    While we are here, use <...> instead of "..." for include/linux/*.h
    and include/sound/*.h headers too.
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/1495081793-9707-2-git-send-email-yamada.masahiro@socionext.com
    (cherry picked from commit b7e8e25,
    conflicts resolved by anholt)
  14. drm/vc4: Avoid using vrefresh==0 mode in DSI htotal math.

    anholt authored and popcornmix committed Aug 15, 2017
    The incoming mode might have a missing vrefresh field if it came from
    drmModeSetCrtc(), which the kernel is supposed to calculate using
    drm_mode_vrefresh().  We could either use that or the adjusted_mode's
    original vrefresh value.
    
    However, we can maintain a more exact vrefresh value (not just the
    integer approximation), by scaling by the ratio of our clocks.
    
    v2: Use math suggested by Andrzej Hajda instead.
    v3: Simplify math now that adjusted_mode->clock isn't padded.
    v4: Drop some parens.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170815234722.20700-2-eric@anholt.net
    Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
    (cherry picked from commit af2eca5)
  15. drm/vc4: Adjust modes in DSI to work around the integer PLL divider.

    anholt authored and popcornmix committed May 11, 2017
    BCM2835's PLLD_DSI1 divider doesn't give us many choices for our pixel
    clocks, so to support panels on the Raspberry Pi we need to set a
    higher pixel clock rate than requested and adjust the mode we program
    to extend out the HFP so that the refresh rate matches.
    
    v2: Drop an unfinished comment (caught by Noralf)
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170511235625.22427-2-eric@anholt.net
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    (cherry picked from commit 86c1b9e)
  16. drm/vc4: simplify exit path of a failed allocation of dsi_connector

    ColinIanKing authored and popcornmix committed Feb 3, 2017
    If dsi_connector fails to allocate, the exit path via label 'fail'
    checks if connector is null, which it always is, so the cleanup
    that destroys connector is never going to be called.  Hence the
    failure path can be more optimally performed by removing this
    and just returning ERR_PTR(-ENOMEM).  This also removes the need
    to initialize connector to NULL, and we can also remove ret too.
    
    Detected by CoverityScan, CID#1399504 ("Logicall Dead Code")
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170203195624.7189-1-colin.king@canonical.com
    (cherry picked from commit fce6a7b)
  17. drm/vc4: Convert existing documentation to actual kerneldoc.

    anholt authored and popcornmix committed Feb 27, 2017
    I'm going to hook vc4 up to the sphinx build, so clean up its comments
    to not generate warnings when we do.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170227201144.10970-2-eric@anholt.net
    (cherry picked from commit 72f793f)
  18. BCM270X_DT: Minor cosmetic DT tidy

    pelwell committed Feb 6, 2018
    Deleting the timer node for all bcm27* DTBs than re-adding an identical
    one for bcm2708 is wrong - just delete it where it isn't wanted.
    
    Also change a #include to match the style of similar includes.
    
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Commits on Feb 5, 2018
  1. config: Add SND_USB_HIFACE=m

    pelwell committed Feb 5, 2018
    See: #2368
    
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  2. mmc: bcm2835-sdhost: Add include

    pelwell committed Feb 5, 2018
    highmem.h (needed for kmap_atomic) is pulled in by one of the other
    include files, but only with some CONFIG settings. Make the inclusion
    explicit to cater for cases where the CONFIG setting is absent.
    
    See: #2366
    
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Commits on Feb 3, 2018
  1. Linux 4.9.80

    gregkh committed Feb 3, 2018
  2. spi: imx: do not access registers while clocks disabled

    falstaff84 authored and gregkh committed Jan 7, 2018
    commit d593574aff0ab846136190b1729c151c736727ec upstream.
    
    Since clocks are disabled except during message transfer clocks
    are also disabled when spi_imx_remove gets called. Accessing
    registers leads to a freeeze at least on a i.MX 6ULL. Enable
    clocks before disabling accessing the MXC_CSPICTRL register.
    
    Fixes: 9e556dc ("spi: spi-imx: only enable the clocks when we start to transfer a message")
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  3. serial: imx: Only wakeup via RTSDEN bit if the system has RTS/CTS

    Fabio Estevam authored and gregkh committed Jan 4, 2018
    commit 38b1f0fb42f772b8c9aac53593883a18ff5eb9d7 upstream.
    
    The wakeup mechanism via RTSDEN bit relies on the system using the RTS/CTS
    lines, so only allow such wakeup method when the system actually has
    RTS/CTS support.
    
    Fixes: bc85734 ("serial: imx: allow waking up on RTSD")
    Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
    Reviewed-by: Martin Kaiser <martin@kaiser.cx>
    Acked-by: Fugang Duan <fugang.duan@nxp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  4. usbip: vhci_hcd: clear just the USB_PORT_STAT_POWER bit

    Shuah Khan authored and gregkh committed Jan 26, 2018
    Upstream commit 1c9de5b ("usbip: vhci-hcd: Add USB3 SuperSpeed
    support")
    
    vhci_hcd clears all the bits port_status bits instead of clearing
    just the USB_PORT_STAT_POWER bit when it handles ClearPortFeature:
    USB_PORT_FEAT_POWER. This causes vhci_hcd attach to fail in a bad
    state, leaving device unusable by the client. The device is still
    attached and however client can't use it.
    
    The problem was fixed as part of larger change to add  USB3 Super
    Speed support. This patch backports just the change to clear the
    USB_PORT_STAT_POWER.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  5. usb/gadget: Fix "high bandwidth" check in usb_gadget_ep_match_desc()

    ozbenh authored and gregkh committed Jan 12, 2018
    commit 11fb37998759c48e4e4c200c974593cbeab25d3e upstream.
    
    The current code tries to test for bits that are masked out by
    usb_endpoint_maxp(). Instead, use the proper accessor to access
    the new high bandwidth bits.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  6. usb: uas: unconditionally bring back host after reset

    oneukum authored and gregkh committed Jan 11, 2018
    commit cbeef22fd611c4f47c494b821b2b105b8af970bb upstream.
    
    Quoting Hans:
    
    If we return 1 from our post_reset handler, then our disconnect handler
    will be called immediately afterwards. Since pre_reset blocks all scsi
    requests our disconnect handler will then hang in the scsi_remove_host
    call.
    
    This is esp. bad because our disconnect handler hanging for ever also
    stops the USB subsys from enumerating any new USB devices, causes commands
    like lsusb to hang, etc.
    
    In practice this happens when unplugging some uas devices because the hub
    code may see the device as needing a warm-reset and calls usb_reset_device
    before seeing the disconnect. In this case uas_configure_endpoints fails
    with -ENODEV. We do not want to print an error for this, so this commit
    also silences the shost_printk for -ENODEV.
    
    ENDQUOTE
    
    However, if we do that we better drop any unconditional execution
    and report to the SCSI subsystem that we have undergone a reset
    but we are not operational now.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Reported-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  7. usb: f_fs: Prevent gadget unbind if it is already unbound

    Hemant Kumar authored and gregkh committed Jan 9, 2018
    commit ce5bf9a50daf2d9078b505aca1cea22e88ecb94a upstream.
    
    Upon usb composition switch there is possibility of ep0 file
    release happening after gadget driver bind. In case of composition
    switch from adb to a non-adb composition gadget will never gets
    bound again resulting into failure of usb device enumeration. Fix
    this issue by checking FFS_FL_BOUND flag and avoid extra
    gadget driver unbind if it is already done as part of composition
    switch.
    
    This fixes adb reconnection error reported on Android running
    v4.4 and above kernel versions. Verified on Hikey running vanilla
    v4.15-rc7 + few out of tree Mali patches.
    
    Reviewed-at: https://android-review.googlesource.com/#/c/582632/
    
    Cc: Felipe Balbi <balbi@kernel.org>
    Cc: Greg KH <gregkh@linux-foundation.org>
    Cc: Michal Nazarewicz <mina86@mina86.com>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Dmitry Shmidt <dimitrysh@google.com>
    Cc: Badhri <badhri@google.com>
    Cc: Android Kernel Team <kernel-team@android.com>
    Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
    [AmitP: Cherry-picked it from android-4.14 and updated the commit log]
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  8. USB: serial: simple: add Motorola Tetra driver

    jhovold authored and gregkh committed Jan 18, 2018
    commit 46fe895e22ab3845515ec06b01eaf1282b342e29 upstream.
    
    Add new Motorola Tetra (simple) driver for Motorola Solutions TETRA PEI
    devices.
    
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=0cad ProdID=9011 Rev=24.16
    S:  Manufacturer=Motorola Solutions Inc.
    S:  Product=Motorola Solutions TETRA PEI interface
    C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    
    Note that these devices do not support the CDC SET_CONTROL_LINE_STATE
    request (for any interface).
    
    Reported-by: Max Schulze <max.schulze@posteo.de>
    Tested-by: Max Schulze <max.schulze@posteo.de>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  9. usbip: list: don't list devices attached to vhci_hcd

    Shuah Khan authored and gregkh committed Jan 17, 2018
    commit ef824501f50846589f02173d73ce3fe6021a9d2a upstream.
    
    usbip host lists devices attached to vhci_hcd on the same server
    when user does attach over localhost or specifies the server as the
    remote.
    
    usbip attach -r localhost -b busid
    or
    usbip attach -r servername (or server IP)
    
    Fix it to check and not list devices that are attached to vhci_hcd.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  10. usbip: prevent bind loops on devices attached to vhci_hcd

    Shuah Khan authored and gregkh committed Jan 17, 2018
    commit ef54cf0c600fb8f5737fb001a9e357edda1a1de8 upstream.
    
    usbip host binds to devices attached to vhci_hcd on the same server
    when user does attach over localhost or specifies the server as the
    remote.
    
    usbip attach -r localhost -b busid
    or
    usbip attach -r servername (or server IP)
    
    Unbind followed by bind works, however device is left in a bad state with
    accesses via the attached busid result in errors and system hangs during
    shutdown.
    
    Fix it to check and bail out if the device is already attached to vhci_hcd.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  11. USB: serial: io_edgeport: fix possible sleep-in-atomic

    XidianGeneral authored and gregkh committed Dec 13, 2017
    commit c7b8f77872c73f69a16528a9eb87afefcccdc18b upstream.
    
    According to drivers/usb/serial/io_edgeport.c, the driver may sleep
    under a spinlock.
    The function call path is:
    edge_bulk_in_callback (acquire the spinlock)
       process_rcvd_data
         process_rcvd_status
           change_port_settings
             send_iosp_ext_cmd
               write_cmd_usb
                 usb_kill_urb --> may sleep
    
    To fix it, the redundant usb_kill_urb() is removed from the error path
    after usb_submit_urb() fails.
    
    This possible bug is found by my static analysis tool (DSAC) and checked
    by my code review.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  12. CDC-ACM: apply quirk for card reader

    oneukum authored and gregkh committed Jan 18, 2018
    commit df1cc78a52491f71d8170d513d0f6f114faa1bda upstream.
    
    This devices drops random bytes from messages if you talk to it
    too fast.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>