24 Feb, 2020

1 commit

  • [ Upstream commit 585c91f40d201bc564d4e76b83c05b3b5363fe7e ]

    Fix unsafe unaligned pointer usage in usbip network interfaces. usbip tool
    build fails with new gcc -Werror=address-of-packed-member checks.

    usbip_network.c: In function ‘usbip_net_pack_usb_device’:
    usbip_network.c:79:32: error: taking address of packed member of ‘struct usbip_usb_device’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
    79 | usbip_net_pack_uint32_t(pack, &udev->busnum);

    Fix with minor changes to pass by value instead of by address.

    Signed-off-by: Shuah Khan
    Link: https://lore.kernel.org/r/20200109012416.2875-1-skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Sasha Levin

    Shuah Khan
     

29 Nov, 2019

1 commit

  • commit 26a4d4c00f85cb844dd11dd35e848b079c2f5e8f upstream.

    We should close the fd before the return of read_attr_usbip_status.

    Fixes: 3391ba0e2792 ("usbip: tools: Extract generic code to be shared with vudc backend")
    Signed-off-by: Hewenliang
    Cc: stable
    Link: https://lore.kernel.org/r/20191025043515.20053-1-hewenliang4@huawei.com
    Signed-off-by: Greg Kroah-Hartman

    Hewenliang
     

29 Oct, 2019

1 commit


26 Jul, 2019

1 commit

  • GCC8 started emitting warning about using strncpy with number of bytes
    exactly equal destination size which could lead to non-zero terminated
    string being copied. Use "SYSFS_PATH_MAX - 1" & "SYSFS_BUS_ID_SIZE - 1"
    as number of bytes to ensure name is always zero-terminated.

    Signed-off-by: Changcheng Liu
    Acked-by: Shuah Khan
    Link: https://lore.kernel.org/r/20190725132209.GA27590@jerryopenix
    Signed-off-by: Greg Kroah-Hartman

    Liu, Changcheng
     

31 May, 2019

2 commits

  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    59 temple place suite 330 boston ma 02111 1307 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1334 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

24 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    675 mass ave cambridge ma 02139 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 441 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Michael Ellerman (powerpc)
    Reviewed-by: Richard Fontana
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520071858.739733335@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 May, 2019

2 commits

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not see http www gnu org licenses

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details [based]
    [from] [clk] [highbank] [c] you should have received a copy of the
    gnu general public license along with this program if not see http
    www gnu org licenses

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 355 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Kate Stewart
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Steve Winslow
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154041.837383322@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all Make/Kconfig files which:

    - Have no license information of any form

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

19 Oct, 2018

1 commit

  • Currently the call to atoi is being passed a single char string
    that is not null terminated, so there is a potential read overrun
    along the stack when parsing for an integer value. Fix this by
    instead using a 2 char string that is initialized to all zeros
    to ensure that a 1 char read into the string is always terminated
    with a \0.

    Detected by cppcheck:
    "Invalid atoi() argument nr 1. A nul-terminated string is required."

    Fixes: 3391ba0e2792 ("usbip: tools: Extract generic code to be shared with vudc backend")
    Signed-off-by: Colin Ian King
    Signed-off-by: Greg Kroah-Hartman

    Colin Ian King
     

03 Oct, 2018

1 commit

  • Without this usbip fails on a machine with devices
    that lexicographically come after vhci_hcd.

    ie.
    $ ls -l /sys/devices/platform
    ...
    drwxr-xr-x. 4 root root 0 Sep 19 16:21 serial8250
    -rw-r--r--. 1 root root 4096 Sep 19 23:50 uevent
    drwxr-xr-x. 6 root root 0 Sep 20 13:15 vhci_hcd.0
    drwxr-xr-x. 4 root root 0 Sep 19 16:22 w83627hf.656

    Because it detects 'w83627hf.656' as another vhci_hcd controller,
    and then fails to be able to talk to it.

    Note: this doesn't actually fix usbip's support for multiple
    controllers... that's still broken for other reasons
    ("vhci_hcd.0" is hardcoded in a string macro), but is enough to
    actually make it work on the above machine.

    See also:
    https://bugzilla.redhat.com/show_bug.cgi?id=1631148

    Cc: Jonathan Dieter
    Cc: Valentina Manea
    Cc: Shuah Khan
    Cc: linux-usb@vger.kernel.org
    Signed-off-by: Maciej Żenczykowski
    Acked-by: Shuah Khan (Samsung OSG)
    Tested-by: Jonathan Dieter
    Signed-off-by: Greg Kroah-Hartman

    Maciej Żenczykowski
     

17 Jul, 2018

1 commit

  • The tools/usb/ffs-test.c file defines cpu_to_le16/32 by using the C
    library htole16/32 function calls. However, cpu_to_le16/32 are used when
    initializing structures, i.e in a context where a function call is not
    allowed.

    It works fine on little endian systems because htole16/32 are defined by
    the C library as no-ops. But on big-endian systems, they are actually
    doing something, which might involve calling a function, causing build
    failures, such as:

    ffs-test.c:48:25: error: initializer element is not constant
    #define cpu_to_le32(x) htole32(x)
    ^~~~~~~
    ffs-test.c:128:12: note: in expansion of macro ‘cpu_to_le32’
    .magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC_V2),
    ^~~~~~~~~~~

    To solve this, we code cpu_to_le16/32 in a way that allows them to be
    used when initializing structures. This fix was imported from
    meta-openembedded/android-tools/fix-big-endian-build.patch written by
    Thomas Petazzoni .

    CC: Thomas Petazzoni
    Signed-off-by: Peter Senna Tschudin
    Signed-off-by: Felipe Balbi

    Peter Senna Tschudin
     

31 May, 2018

3 commits

  • usbip detach doesn't check for invalid ports and ports that are already
    detached. It attempts to remove state file(s) without validating the port
    and sends detach request to the driver for ports that are already detached.

    Add check for invalid ports (port > maxports) and ports that are already
    detached (status == VDEV_ST_NULL). Don't remove state files and don't send
    detach request for invalid ports and ports that are already detached.

    Add error and information messages that make sense.

    Signed-off-by: Shuah Khan (Samsung OSG)
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan (Samsung OSG)
     
  • detach_port() fails to call usbip_vhci_driver_close() from its error
    path after usbip_vhci_detach_device() returns failure, leaking memory
    allocated in usbip_vhci_driver_open() and holding udev_context and udev
    references. Fix it to call usbip_vhci_driver_close().

    Signed-off-by: Shuah Khan (Samsung OSG)
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan (Samsung OSG)
     
  • As the amount of available ports varies by the kernels build
    configuration. To remove the limitation of the fixed 128 ports
    we allocate the amount of idevs by using the number we get
    from the kernel.

    Signed-off-by: Michael Grzeschik
    Acked-by: Shuah Khan (Samsung OSG)
    Signed-off-by: Greg Kroah-Hartman

    Michael Grzeschik
     

22 Mar, 2018

1 commit


10 Mar, 2018

5 commits

  • Changed usbip_network, usbip_attach, usbip_list, and usbipd to use
    and propagate the new error codes in server reply messages.

    usbip_net_recv_op_common() is changed to take a pointer to status
    return the status returned in the op_common.status to callers.

    usbip_attach and usbip_list use the common interface to print error
    messages to indicate why the request failed.

    With this change the messages say why a request failed:

    - when a client requests a device that is already exported:

    usbip attach -r server_name -b 3-10.2
    usbip: error: Attach Request for 3-10.2 failed - Device busy (exported)

    - when a client requests a device that isn't exportable,

    usbip attach -r server_name -b 3-10.4
    usbip: error: Attach Request for 3-10.4 failed - Device not found

    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     
  • Currently ST_OK and ST_NA are the only values used to communicate
    status of a request from a client. Use new error codes to clearly
    indicate what failed. For example, when client sends request to
    import a device that isn't export-able, send ST_DEV_BUSY to the client.

    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     
  • Currently ST_OK and ST_NA are the only values defined to communicate
    status of a request from a client. Add more error codes to clearly
    indicate what failed. For example, when client sends request to import
    a device that isn't export-able, server can send a specific error code
    to the client.

    Existing defines are moved to a common header in libsrc to be included
    in the libusbip_la-usbip_common.o to be used by all the usbip tools.
    Supporting interface to print error strings is added to the common lib.

    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     
  • Kernel and tool version mismatch message is cryptic. Fix it to be
    informative.

    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     
  • Attach device error message is cryptic and useless. Fix it to be
    informative.

    Signed-off-by: Shuah Khan
    Reviewed-by: Krzysztof Opasiak
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     

22 Feb, 2018

1 commit

  • Currently a number of Makefiles break when used with toolchains that
    pass extra flags in CC and other cross-compile related variables (such
    as --sysroot).

    Thus we get this error when we use a toolchain that puts --sysroot in
    the CC var:

    ~/src/linux/tools$ make iio
    [snip]
    iio_event_monitor.c:18:10: fatal error: unistd.h: No such file or directory
    #include
    ^~~~~~~~~~

    This occurs because we clobber several env vars related to
    cross-compiling with lines like this:

    CC = $(CROSS_COMPILE)gcc

    Although this will point to a valid cross-compiler, we lose any extra
    flags that might exist in the CC variable, which can break toolchains
    that rely on them (for example, those that use --sysroot).

    This easily shows up using a Yocto SDK:

    $ . [snip]/sdk/environment-setup-cortexa8hf-neon-poky-linux-gnueabi

    $ echo $CC
    arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard
    -mcpu=cortex-a8
    --sysroot=[snip]/sdk/sysroots/cortexa8hf-neon-poky-linux-gnueabi

    $ echo $CROSS_COMPILE
    arm-poky-linux-gnueabi-

    $ echo ${CROSS_COMPILE}gcc
    krm-poky-linux-gnueabi-gcc

    Although arm-poky-linux-gnueabi-gcc is a cross-compiler, we've lost the
    --sysroot and other flags that enable us to find the right libraries to
    link against, so we can't find unistd.h and other libraries and headers.
    Normally with the --sysroot flag we would find unistd.h in the sdk
    directory in the sysroot:

    $ find [snip]/sdk/sysroots -path '*/usr/include/unistd.h'
    [snip]/sdk/sysroots/cortexa8hf-neon-poky-linux-gnueabi/usr/include/unistd.h

    The perf Makefile adds CC = $(CROSS_COMPILE)gcc if and only if CC is not
    already set, and it compiles correctly with the above toolchain.

    So, generalize the logic that perf uses in the common Makefile and
    remove the manual CC = $(CROSS_COMPILE)gcc lines from each Makefile.

    Note that this patch does not fix cross-compile for all the tools (some
    have other bugs), but it does fix it for all except usb and acpi, which
    still have other unrelated issues.

    I tested both with and without the patch on native and cross-build and
    there appear to be no regressions.

    Link: http://lkml.kernel.org/r/20180107214028.23771-1-martin@martingkelly.com
    Signed-off-by: Martin Kelly
    Acked-by: Mark Brown
    Cc: Tejun Heo
    Cc: Li Zefan
    Cc: Johannes Weiner
    Cc: Linus Walleij
    Cc: "K. Y. Srinivasan"
    Cc: Haiyang Zhang
    Cc: Stephen Hemminger
    Cc: Jonathan Cameron
    Cc: Pali Rohar
    Cc: Richard Purdie
    Cc: Jacek Anaszewski
    Cc: Pavel Machek
    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Cc: Robert Moore
    Cc: Lv Zheng
    Cc: "Rafael J. Wysocki"
    Cc: Greg Kroah-Hartman
    Cc: Valentina Manea
    Cc: Shuah Khan
    Cc: Mario Limonciello
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Kelly
     

22 Jan, 2018

2 commits

  • 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.

    Cc: stable@vger.kernel.org
    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     
  • 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.

    Cc: stable@vger.kernel.org
    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     

05 Jan, 2018

2 commits


02 Jan, 2018

1 commit


19 Dec, 2017

1 commit


18 Dec, 2017

1 commit


09 Dec, 2017

2 commits

  • When a client has a USB device attached over IP, the vhci_hcd driver is
    locally leaking a socket pointer address via the

    /sys/devices/platform/vhci_hcd/status file (world-readable) and in debug
    output when "usbip --debug port" is run.

    Fix it to not leak. The socket pointer address is not used at the moment
    and it was made visible as a convenient way to find IP address from socket
    pointer address by looking up /proc/net/{tcp,tcp6}.

    As this opens a security hole, the fix replaces socket pointer address with
    sockfd.

    Reported-by: Secunia Research
    Cc: stable
    Signed-off-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     
  • Fixes following build error:
    vhci_driver.c: In function 'refresh_imported_device_list':
    vhci_driver.c:118:37: error: 'snprintf' output may be truncated before
    the last format character [-Werror=format-truncation=]
    snprintf(status, sizeof(status), "status.%d", i);
    ^~~~~~~~~~~
    vhci_driver.c:118:4: note: 'snprintf' output between 9 and 18 bytes into
    a destination of size 17
    snprintf(status, sizeof(status), "status.%d", i);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors

    Signed-off-by: Julien BOIBESSOT
    Acked-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Julien BOIBESSOT
     

07 Dec, 2017

1 commit

  • Indeed musl doesn't define old SIGCLD signal name but only new one SIGCHLD.
    SIGCHLD is the new POSIX name for that signal so it doesn't change
    anything on other libcs.

    This fixes this kind of build error:

    usbipd.c: In function ‘set_signal’:
    usbipd.c:459:12: error: 'SIGCLD' undeclared (first use in this function)
    sigaction(SIGCLD, &act, NULL);
    ^~~~~~
    usbipd.c:459:12: note: each undeclared identifier is reported only once
    for each function it appears in
    Makefile:407: recipe for target 'usbipd.o' failed
    make[3]: *** [usbipd.o] Error 1

    Signed-off-by: Julien BOIBESSOT
    Acked-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Julien BOIBESSOT
     

01 Dec, 2017

1 commit

  • usbip attach fails to find a free port when the device on the first port
    is a USB_SPEED_SUPER device and non-super speed device is being attached.
    It keeps checking the first port and returns without a match getting stuck
    in a loop.

    Fix it check to find the first port with matching speed.

    Reported-by: Juan Zea
    Signed-off-by: Shuah Khan
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Shuah Khan
     

14 Nov, 2017

1 commit

  • Pull USB/PHY updates from Greg KH:
    "Here is the big set of USB and PHY driver updates for 4.15-rc1.

    There is the usual amount of gadget and xhci driver updates, along
    with phy and chipidea enhancements. There's also a lot of SPDX tags
    and license boilerplate cleanups as well, which provide some churn in
    the diffstat.

    Other major thing is the typec code that moved out of staging and into
    the "real" part of the drivers/usb/ tree, which was nice to see
    happen.

    All of these have been in linux-next with no reported issues for a
    while"

    * tag 'usb-4.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (263 commits)
    usb: gadget: f_fs: Fix use-after-free in ffs_free_inst
    USB: usbfs: compute urb->actual_length for isochronous
    usb: core: message: remember to reset 'ret' to 0 when necessary
    USB: typec: Remove remaining redundant license text
    USB: typec: add SPDX identifiers to some files
    USB: renesas_usbhs: rcar?.h: add SPDX tags
    USB: chipidea: ci_hdrc_tegra.c: add SPDX line
    USB: host: xhci-debugfs: add SPDX lines
    USB: add SPDX identifiers to all remaining Makefiles
    usb: host: isp1362-hcd: remove a couple of redundant assignments
    USB: adutux: remove redundant variable minor
    usb: core: add a new usb_get_ptm_status() helper
    usb: core: add a 'type' parameter to usb_get_status()
    usb: core: introduce a new usb_get_std_status() helper
    usb: core: rename usb_get_status() 'type' argument to 'recip'
    usb: core: add Status Type definitions
    USB: gadget: Remove redundant license text
    USB: gadget: function: Remove redundant license text
    USB: gadget: udc: Remove redundant license text
    USB: gadget: legacy: Remove redundant license text
    ...

    Linus Torvalds
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

04 Oct, 2017

1 commit

  • usbip_host_driver.h now depends on several additional headers, which
    need to be installed along with it.

    Fixes: 021aed845303 ("staging: usbip: userspace: migrate usbip_host_driver ...")
    Fixes: 3391ba0e2792 ("usbip: tools: Extract generic code to be shared with ...")
    Signed-off-by: Ben Hutchings
    Acked-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Ben Hutchings
     

01 Sep, 2017

1 commit

  • This patch adds recovery from false busy state on concurrent attach
    operation.

    The procedure of attach operation is as below.
    1) Find an unused port in /sys/devices/platform/vhci_hcd/status.
    (userspace)
    2) Request attach found port to driver through
    /sys/devices/platform/vhci_hcd/attach. (userspace)
    3) Lock table, reserve requested port and unlock table. (vhci driver)

    Attaching more than one remote devices concurrently, same unused port
    number will be found in step-1. Then one request will succeed and
    others will fail even though there are some unused ports.

    With this patch, driver returns EBUSY when requested port has already
    been used. In this case, attach command retries from step-1: finding
    another unused port. If there's no unused port, the attach operation
    will fail in step-1. Otherwise it retries automatically using another
    unused port.

    vhci-hcd's interface (only errno) is changed as following.

    Current errno New errno Condition
    EINVAL same as left specified port number is in invalid
    range
    EAGAIN same as left platform_get_drvdata() failed
    EINVAL same as left specified socket fd is not valid
    EINVAL EBUSY specified port status is not free

    The errno EBUSY was not used in userspace
    src/usbip_attach.c:import_device(). It is needed to distinguish the
    condition to be able to retry from other unrecoverable errors.

    It is possible to avoid this failure by introducing userspace exclusive
    control. But it's exaggerated for this special condition. The locking
    itself has done in driver.
    As an alternate solution, userspace doesn't specify port number, driver
    searches unused port and it returns port number to the userspace. With
    this solution, the interface is much different than this patch.

    Signed-off-by: Nobuo Iwata
    Acked-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Nobuo Iwata
     

20 Jun, 2017

1 commit


13 Jun, 2017

2 commits

  • This patch adds a USB3 HCD to an existing USB2 HCD and provides
    the support of SuperSpeed, in case the device can only be enumerated
    with SuperSpeed.

    The bulk of the added code in usb3_bos_desc and hub_control to support
    SuperSpeed is borrowed from the commit 1cd8fd2887e162ad ("usb: gadget:
    dummy_hcd: add SuperSpeed support").

    With this patch, each vhci will have VHCI_HC_PORTS HighSpeed ports
    and VHCI_HC_PORTS SuperSpeed ports.

    Suggested-by: Krzysztof Opasiak
    Signed-off-by: Yuyang Du
    Acked-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Yuyang Du
     
  • A vhci struct is added as the platform-specific data to the vhci
    platform device, in order to get the vhci by its platform device.
    This is done in vhci_hcd_init().

    Signed-off-by: Yuyang Du
    Acked-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Yuyang Du