Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Feb 3, 2012
  1. Merge branch 'version-3.2' into pf-3.2

    Oleksandr Natalenko authored
  2. version-3.2: bump to v3.2.3-pf

    Oleksandr Natalenko authored
  3. fix merge conflict

    Oleksandr Natalenko authored
  4. @gregkh

    Linux 3.2.3

    gregkh authored
  5. @planglais @gregkh

    mach-ux500: no MMC_CAP_SD_HIGHSPEED on Snowball

    planglais authored gregkh committed
    commit 2ab1159 upstream.
    MMC_CAP_SD_HIGHSPEED is not supported on Snowball board resulting on
    initialization errors.
    Signed-off-by: Mathieu Poirier <>
    Signed-off-by: Fredrik Soderstedt <>
    Signed-off-by: Philippe Langlais <>
    Signed-off-by: Linus Walleij <>
  6. @jhovold @gregkh

    USB: cp210x: allow more baud rates above 1Mbaud

    jhovold authored gregkh committed
    commit d1620ca upstream.
    Allow more baud rates to be set in [1M,2M] baud.
    Signed-off-by: Johan Hovold <>
    Cc: Preston Fick <>
    Signed-off-by: Greg Kroah-Hartman <>
  7. @jhovold @gregkh

    USB: cp210x: initialise baud rate at open

    jhovold authored gregkh committed
    commit cdc32fd upstream.
    The newer cp2104 devices require the baud rate to be initialised after
    power on. Make sure it is set when port is opened.
    Signed-off-by: Johan Hovold <>
    Cc: Preston Fick <>
    Signed-off-by: Greg Kroah-Hartman <>
  8. @jhovold @gregkh

    USB: cp210x: clean up, refactor and document speed handling

    jhovold authored gregkh committed
    commit e599087 upstream.
    Clean up and refactor speed handling.
    Document baud rate handling for CP210{1,2,4,5,10}.
    Signed-off-by: Johan Hovold <>
    Cc: Preston Fick <>
    Signed-off-by: Greg Kroah-Hartman <>
  9. @jhovold @gregkh

    USB: cp210x: fix up set_termios variables

    jhovold authored gregkh committed
    commit 34b76fc upstream.
    [Based on a patch from Johan, mangled by gregkh to keep things in line]
    Fix up the variable usage in the set_termios call.
    Signed-off-by: Johan Hovold <>
    Cc: Preston Fick <>
    Signed-off-by: Greg Kroah-Hartman <>
  10. @jhovold @gregkh

    USB: cp210x: do not map baud rates to B0

    jhovold authored gregkh committed
    commit be125d9 upstream.
    We do not implement B0 hangup yet so map low baudrates to 300bps.
    Signed-off-by: Johan Hovold <>
    Cc: Preston Fick <>
    Signed-off-by: Greg Kroah-Hartman <>
  11. @gregkh

    USB: cp210x: fix CP2104 baudrate usage

    Preston Fick authored gregkh committed
    commit 7f482fc upstream.
    This fix changes the way baudrates are set on the CP210x devices from
    Silicon Labs. The CP2101/2/3 will respond to both a GET/SET_BAUDDIV
    command, and GET/SET_BAUDRATE command, while CP2104 and higher devices
    only respond to GET/SET_BAUDRATE. The current cp210x.ko driver in
    kernel version 3.2.0 only implements the GET/SET_BAUDDIV command.
    This patch implements the two new codes for the GET/SET_BAUDRATE
    commands. Then there is a change in the way that the baudrate is
    assigned or retrieved. This is done according to the CP210x USB
    specification in AN571. This document can be found here:
    Sections 5.3/5.4 describe the USB packets for the old baudrate method.
    Sections 5.5/5.6 describe the USB packets for the new method. This
    patch also implements the new request scheme, and eliminates the
    unnecessary baudrate calculations since it uses the "actual baudrate"
    This patch solves the problem reported for the CP2104 in bug 42586,
    and also keeps support for all other devices (CP2101/2/3).
    This patchfile is also attached to the bug report on This patch has been developed and test on the
    3.2.0 mainline kernel version under Ubuntu 10.11.
    Signed-off-by: Preston Fick <>
    [duplicate patch also sent by Johan - gregkh]
    Signed-off-by: Johan Hovold <>
    Signed-off-by: Greg Kroah-Hartman <>
  12. @jhovold @gregkh

    USB: cp210x: call generic open last in open

    jhovold authored gregkh committed
    commit 55b2afb upstream.
    Make sure port is fully initialised before calling generic open.
    Signed-off-by: Johan Hovold <>
    Signed-off-by: Greg Kroah-Hartman <>
  13. @rmsc @gregkh

    USB: serial: CP210x: Added USB-ID for the Link Instruments MSO-19

    rmsc authored gregkh committed
    commit 791b7d7 upstream.
    This device is a Oscilloscope/Logic Analizer/Pattern Generator/TDR,
    using a Silabs CP2103 USB to UART Bridge.
    Signed-off-by: Renato Caldas <>
    Signed-off-by: Greg Kroah-Hartman <>
  14. @gregkh

    tcp: md5: using remote adress for md5 lookup in rst packet

    shawnlu authored gregkh committed
    [ Upstream commit 8a622e7 ]
    md5 key is added in socket through remote address.
    remote address should be used in finding md5 key when
    sending out reset packet.
    Signed-off-by: shawnlu <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  15. @gregkh

    tcp: fix tcp_trim_head() to adjust segment count with skb MSS

    Neal Cardwell authored gregkh committed
    [ Upstream commit 5b35e1e ]
    This commit fixes tcp_trim_head() to recalculate the number of
    segments in the skb with the skb's existing MSS, so trimming the head
    causes the skb segment count to be monotonically non-increasing - it
    should stay the same or go down, but not increase.
    Previously tcp_trim_head() used the current MSS of the connection. But
    if there was a decrease in MSS between original transmission and ACK
    (e.g. due to PMTUD), this could cause tcp_trim_head() to
    counter-intuitively increase the segment count when trimming bytes off
    the head of an skb. This violated assumptions in tcp_tso_acked() that
    tcp_trim_head() only decreases the packet count, so that packets_acked
    in tcp_tso_acked() could underflow, leading tcp_clean_rtx_queue() to
    pass u32 pkts_acked values as large as 0xffffffff to
    As an aside, if tcp_trim_head() had really wanted the skb to reflect
    the current MSS, it should have called tcp_set_skb_tso_segs()
    unconditionally, since a decrease in MSS would mean that a
    single-packet skb should now be sliced into multiple segments.
    Signed-off-by: Neal Cardwell <>
    Acked-by: Nandita Dukkipati <>
    Acked-by: Ilpo Järvinen <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  16. @davem330 @gregkh

    rds: Make rds_sock_lock BH rather than IRQ safe.

    davem330 authored gregkh committed
    [ Upstream commit efc3dbc ]
    rds_sock_info() triggers locking warnings because we try to perform a
    local_bh_enable() (via sock_i_ino()) while hardware interrupts are
    disabled (via taking rds_sock_lock).
    There is no reason for rds_sock_lock to be a hardware IRQ disabling
    lock, none of these access paths run in hardware interrupt context.
    Therefore making it a BH disabling lock is safe and sufficient to
    fix this bug.
    Reported-by: Kumar Sanghvi <>
    Reported-by: Josh Boyer <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  17. @gregkh

    net: reintroduce missing rcu_assign_pointer() calls

    Eric Dumazet authored gregkh committed
    [ Upstream commit cf778b0 ]
    commit a9b3cd7 (rcu: convert uses of rcu_assign_pointer(x, NULL) to
    RCU_INIT_POINTER) did a lot of incorrect changes, since it did a
    complete conversion of rcu_assign_pointer(x, y) to RCU_INIT_POINTER(x,
    We miss needed barriers, even on x86, when y is not NULL.
    Signed-off-by: Eric Dumazet <>
    CC: Stephen Hemminger <>
    CC: Paul E. McKenney <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  18. @gregkh

    net: bpf_jit: fix divide by 0 generation

    Eric Dumazet authored gregkh committed
    [ Upstream commit d00a9dd ]
    Several problems fixed in this patch :
    1) Target of the conditional jump in case a divide by 0 is performed
       by a bpf is wrong.
    2) Must 'generate' the full function prologue/epilogue at pass=0,
       or else we can stop too early in pass=1 if the proglen doesnt change.
       (if the increase of prologue/epilogue equals decrease of all
        instructions length because some jumps are converted to near jumps)
    3) Change the wrong length detection at the end of code generation to
       issue a more explicit message, no need for a full stack trace.
    Reported-by: Phil Oester <>
    Signed-off-by: Eric Dumazet <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  19. @gregkh

    macvlan: fix a possible use after free

    Eric Dumazet authored gregkh committed
    [ Upstream commit 4ec7ac1 ]
    Commit bc416d9 (macvlan: handle fragmented multicast frames) added a
    possible use after free in macvlan_handle_frame(), since
    ip_check_defrag() uses pskb_may_pull() : skb header can be reallocated.
    Signed-off-by: Eric Dumazet <>
    Cc: Ben Greear <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  20. @gregkh

    l2tp: l2tp_ip - fix possible oops on packet receive

    James Chapman authored gregkh committed
    [ Upstream commit 6831580 ]
    When a packet is received on an L2TP IP socket (L2TPv3 IP link
    encapsulation), the l2tpip socket's backlog_rcv function calls
    xfrm4_policy_check(). This is not necessary, since it was called
    before the skb was added to the backlog. With CONFIG_NET_NS enabled,
    xfrm4_policy_check() will oops if skb->dev is null, so this trivial
    patch removes the call.
    This bug has always been present, but only when CONFIG_NET_NS is
    enabled does it cause problems. Most users are probably using UDP
    encapsulation for L2TP, hence the problem has only recently
    EIP: 0060:[<c12bb62b>] EFLAGS: 00210246 CPU: 0
    EIP is at l2tp_ip_recvmsg+0xd4/0x2a7
    EAX: 00000001 EBX: d77b5180 ECX: 00000000 EDX: 00200246
    ESI: 00000000 EDI: d63cbd30 EBP: d63cbd18 ESP: d63cbcf4
     DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    Call Trace:
     [<c1218568>] sock_common_recvmsg+0x31/0x46
     [<c1215c92>] __sock_recvmsg_nosec+0x45/0x4d
     [<c12163a1>] __sock_recvmsg+0x31/0x3b
     [<c1216828>] sock_recvmsg+0x96/0xab
     [<c10b2693>] ? might_fault+0x47/0x81
     [<c10b2693>] ? might_fault+0x47/0x81
     [<c1167fd0>] ? _copy_from_user+0x31/0x115
     [<c121e8c8>] ? copy_from_user+0x8/0xa
     [<c121ebd6>] ? verify_iovec+0x3e/0x78
     [<c1216604>] __sys_recvmsg+0x10a/0x1aa
     [<c1216792>] ? sock_recvmsg+0x0/0xab
     [<c105a99b>] ? __lock_acquire+0xbdf/0xbee
     [<c12d5a99>] ? do_page_fault+0x193/0x375
     [<c10d1200>] ? fcheck_files+0x9b/0xca
     [<c10d1259>] ? fget_light+0x2a/0x9c
     [<c1216bbb>] sys_recvmsg+0x2b/0x43
     [<c1218145>] sys_socketcall+0x16d/0x1a5
     [<c11679f0>] ? trace_hardirqs_on_thunk+0xc/0x10
     [<c100305f>] sysenter_do_call+0x12/0x38
    Code: c6 05 8c ea a8 c1 01 e8 0c d4 d9 ff 85 f6 74 07 3e ff 86 80 00 00 00 b9 17 b6 2b c1 ba 01 00 00 00 b8 78 ed 48 c1 e8 23 f6 d9 ff <ff> 76 0c 68 28 e3 30 c1 68 2d 44 41 c1 e8 89 57 01 00 83 c4 0c
    Signed-off-by: James Chapman <>
    Acked-by: Eric Dumazet <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  21. @jiribohac @gregkh

    bonding: fix enslaving in alb mode when link down

    jiribohac authored gregkh committed
    [ Upstream commit b924551 ]
    bond_alb_init_slave() is called from bond_enslave() and sets the slave's MAC
    address. This is done differently for TLB and ALB modes.
    bond->alb_info.rlb_enabled is used to discriminate between the two modes but
    this flag may be uninitialized if the slave is being enslaved prior to calling
    bond_open() -> bond_alb_initialize() on the master.
    It turns out all the callers of alb_set_slave_mac_addr() pass
    bond->alb_info.rlb_enabled as the hw parameter.
    This patch cleans up the unnecessary parameter of alb_set_slave_mac_addr() and
    makes the function decide based on the bonding mode instead, which fixes the
    above problem.
    Reported-by: Narendra K <>
    Signed-off-by: Jiri Bohac <>
    Signed-off-by: Jay Vosburgh <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  22. @gregkh

    af_unix: fix EPOLLET regression for stream sockets

    Eric Dumazet authored gregkh committed
    [ Upstream commit 6f01fd6 ]
    Commit 0884d7a (AF_UNIX: Fix poll blocking problem when reading from
    a stream socket) added a regression for epoll() in Edge Triggered mode
    Appropriate fix is to use skb_peek()/skb_unlink() instead of
    skb_dequeue(), and only call skb_unlink() when skb is fully consumed.
    This remove the need to requeue a partial skb into sk_receive_queue head
    and the extra sk->sk_data_ready() calls that added the regression.
    This is safe because once skb is given to sk_receive_queue, it is not
    modified by a writer, and readers are serialized by u->readlock mutex.
    This also reduce number of spinlock acquisition for small reads or
    MSG_PEEK users so should improve overall performance.
    Reported-by: Nick Mathewson <>
    Signed-off-by: Eric Dumazet <>
    Cc: Alexey Moiseytsev <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  23. @ebiederm @gregkh

    net caif: Register properly as a pernet subsystem.

    ebiederm authored gregkh committed
    [ Upstream commit 8a8ee9a ]
    caif is a subsystem and as such it needs to register with
    register_pernet_subsys instead of register_pernet_device.
    Among other problems using register_pernet_device was resulting in
    net_generic being called before the caif_net structure was allocated.
    Which has been causing net_generic to fail with either BUG_ON's or by
    return NULL pointers.
    A more ugly problem that could be caused is packets in flight why the
    subsystem is shutting down.
    To remove confusion also remove the cruft cause by inappropriately
    trying to fix this bug.
    With the aid of the previous patch I have tested this patch and
    confirmed that using register_pernet_subsys makes the failure go away as
    it should.
    Signed-off-by: Eric W. Biederman <>
    Acked-by: Sjur Brændeland <>
    Tested-by: Sasha Levin <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  24. @ebiederm @gregkh

    netns: Fail conspicously if someone uses net_generic at an inappropri…

    ebiederm authored gregkh committed
    …ate time.
    [ Upstream commit 5ee4433 ]
    By definition net_generic should never be called when it can return
    NULL.  Fail conspicously with a BUG_ON to make it clear when people mess
    up that a NULL return should never happen.
    Recently there was a bug in the CAIF subsystem where it was registered
    with register_pernet_device instead of register_pernet_subsys.  It was
    erroneously concluded that net_generic could validly return NULL and
    that net_assign_generic was buggy (when it was just inefficient).
    Hopefully this BUG_ON will prevent people to coming to similar erroneous
    conclusions in the futrue.
    Signed-off-by: Eric W. Biederman <>
    Tested-by: Sasha Levin <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  25. @gregkh

    netns: fix net_alloc_generic()

    Eric Dumazet authored gregkh committed
    [ Upstream commit 073862b ]
    When a new net namespace is created, we should attach to it a "struct
    net_generic" with enough slots (even empty), or we can hit the following
    BUG_ON() :
    [  200.752016] kernel BUG at include/net/netns/generic.h:40!
    [  200.752016]  [<ffffffff825c3cea>] ? get_cfcnfg+0x3a/0x180
    [  200.752016]  [<ffffffff821cf0b0>] ? lockdep_rtnl_is_held+0x10/0x20
    [  200.752016]  [<ffffffff825c41be>] caif_device_notify+0x2e/0x530
    [  200.752016]  [<ffffffff810d61b7>] notifier_call_chain+0x67/0x110
    [  200.752016]  [<ffffffff810d67c1>] raw_notifier_call_chain+0x11/0x20
    [  200.752016]  [<ffffffff821bae82>] call_netdevice_notifiers+0x32/0x60
    [  200.752016]  [<ffffffff821c2b26>] register_netdevice+0x196/0x300
    [  200.752016]  [<ffffffff821c2ca9>] register_netdev+0x19/0x30
    [  200.752016]  [<ffffffff81c1c67a>] loopback_net_init+0x4a/0xa0
    [  200.752016]  [<ffffffff821b5e62>] ops_init+0x42/0x180
    [  200.752016]  [<ffffffff821b600b>] setup_net+0x6b/0x100
    [  200.752016]  [<ffffffff821b6466>] copy_net_ns+0x86/0x110
    [  200.752016]  [<ffffffff810d5789>] create_new_namespaces+0xd9/0x190
    net_alloc_generic() should take into account the maximum index into the
    ptr array, as a subsystem might use net_generic() anytime.
    This also reduces number of reallocations in net_assign_generic()
    Reported-by: Sasha Levin <>
    Tested-by: Sasha Levin <>
    Signed-off-by: Eric Dumazet <>
    Cc: Sjur Brændeland <>
    Cc: Eric W. Biederman <>
    Cc: Pavel Emelyanov <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  26. @bmork @gregkh

    USB: cdc-wdm: Avoid hanging on interface with no USB_CDC_DMM_TYPE

    bmork authored gregkh committed
    commit 15699e6 upstream.
    The probe does not strictly require the USB_CDC_DMM_TYPE
    descriptor, which is a good thing as it makes the driver
    usable on non-conforming interfaces.  A user could e.g.
    bind to it to a CDC ECM interface by using the new_id and
    bind sysfs files.  But this would fail with a 0 buffer length
    due to the missing descriptor.
    Fix by defining a reasonable fallback size: The minimum
    device receive buffer size required by the CDC WMC standard,
    revision 1.1
    Signed-off-by: Bjørn Mork <>
    Signed-off-by: Greg Kroah-Hartman <>
  27. @bmork @gregkh

    USB: cdc-wdm: better allocate a buffer that is at least as big as we …

    bmork authored gregkh committed
    …tell the USB core
    commit 655e247 upstream.
    As it turns out, there was a mismatch between the allocated inbuf size
    (desc->bMaxPacketSize0, typically something like 64) and the length we
    specified in the URB (desc->wMaxCommand, typically something like 2048)
    Signed-off-by: Bjørn Mork <>
    Cc: Oliver Neukum <>
    Signed-off-by: Greg Kroah-Hartman <>
  28. @bmork @gregkh

    USB: cdc-wdm: call wake_up_all to allow driver to shutdown on device …

    bmork authored gregkh committed
    commit 62aaf24 upstream.
    wdm_disconnect() waits for the mutex held by wdm_read() before
    calling wake_up_all().  This causes a deadlock, preventing device removal
    to complete.  Do the wake_up_all() before we start waiting for the locks.
    Signed-off-by: Bjørn Mork <>
    Cc: Oliver Neukum <>
    Cc: stable <>
    Signed-off-by: Greg Kroah-Hartman <>
  29. @vivien @gregkh

    hwmon: (sht15) fix bad error code

    vivien authored gregkh committed
    commit 6edf3c3 upstream.
    When no platform data was supplied, returned error code was 0.
    Signed-off-by: Vivien Didelot <>
    Signed-off-by: Guenter Roeck <>
    Signed-off-by: Greg Kroah-Hartman <>
  30. @groeck @gregkh

    hwmon: (w83627ehf) Disable setting DC mode for pwm2, pwm3 on NCT6776F

    groeck authored gregkh committed
    commit ad77c3e upstream.
    NCT6776F only supports pwm mode for pwm2 and pwm3. Return error if an attempt
    is made to set those pwm channels to DC mode.
    Signed-off-by: Guenter Roeck <>
    Acked-by: Jean Delvare <>
    Signed-off-by: Guenter Roeck <>
    Signed-off-by: Greg Kroah-Hartman <>
  31. @gregkh

    hwmon: (f71805f) Fix clamping of temperature limits

    Jean Delvare authored gregkh committed
    commit 86b2bbf upstream.
    Properly clamp temperature limits set by the user. Without this fix,
    attempts to write temperature limits above the maximum supported by
    the chip (255 degrees Celsius) would arbitrarily and unexpectedly
    result in the limit being set to 0 degree Celsius.
    Signed-off-by: Jean Delvare <>
    Signed-off-by: Guenter Roeck <>
    Signed-off-by: Greg Kroah-Hartman <>
  32. @gregkh

    usb: musb: davinci: fix build breakage

    Sekhar Nori authored gregkh committed
    commit 006896f upstream.
    Commit 0020afb (ARM: mach-davinci:
    remove mach/memory.h) removed mach/memory.h for DaVinci which broke
    DaVinci MUSB build.
    mach/memory.h is not actually needed in davinci.c, so remove it.
    While at it, also remove some more machine specific inclulde
    files which are not needed for build.
    Tested on DM644x EVM using USB card reader.
    Signed-off-by: Sekhar Nori <>
    Signed-off-by: Felipe Balbi <>
    Signed-off-by: Greg Kroah-Hartman <>
  33. @gregkh

    xHCI: Cleanup isoc transfer ring when TD length mismatch found

    Andiry Xu authored gregkh committed
    commit cf84055 upstream.
    When a TD length mismatch is found during isoc TRB enqueue, it directly
    returns -EINVAL. However, isoc transfer is partially enqueued at this time,
    and the ring should be cleared.
    This should be backported to kernels as old as 2.6.36, which contain the
    commit 522989a "xhci: Fix failed
    enqueue in the middle of isoch TD."
    Signed-off-by: Andiry Xu <>
    Signed-off-by: Sarah Sharp <>
    Signed-off-by: Greg Kroah-Hartman <>
  34. @gregkh

    xhci: Fix USB 3.0 device restart on resume.

    Sarah Sharp authored gregkh committed
    commit d0cd5d4 upstream.
    The xHCI hub port code gets passed a zero-based port number by the USB
    core.  It then adds one to in order to find a device slot by port number
    and device speed by calling xhci_find_slot_id_by_port.  That function
    clearly states it requires a one-based port number.  The xHCI port
    status change event handler was using a zero-based port number that it
    got from find_faked_portnum_from_hw_portnum, not a one-based port
    number.  This lead to the doorbells never being rung for a device after
    a resume, or worse, a different device with the same speed having its
    doorbell rung (which could lead to bad power management in the xHCI host
    This patch should be backported to kernels as old as 2.6.39.
    Signed-off-by: Sarah Sharp <>
    Acked-by: Andiry Xu <>
    Signed-off-by: Greg Kroah-Hartman <>
  35. @JuliaLawall @gregkh

    drivers/usb/host/ehci-fsl.c: add missing iounmap

    JuliaLawall authored gregkh committed
    commit 2492c6e upstream.
    Add missing iounmap in error handling code, in a case where the function
    already preforms iounmap on some other execution path.
    A simplified version of the semantic match that finds this problem is as
    follows: (
    // <smpl>
    expression e;
    statement S,S1;
    int ret;
    e = \(ioremap\|ioremap_nocache\)(...)
    ... when != iounmap(e)
    if (<+...e...+>) S
    ... when any
        when != iounmap(e)
    *if (...)
       { ... when != iounmap(e)
         return ...; }
    ... when any
    // </smpl>
    Signed-off-by: Julia Lawall <>
    Acked-by: Alan Stern <>
    Signed-off-by: Greg Kroah-Hartman <>
Something went wrong with that request. Please try again.