lkml.org 
[lkml]   [2018]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.4 027/162] usb: usbip tool: Fix refresh_imported_device_list()
    Date
    From: Yuyang Du <yuyang.du@intel.com>

    [ Upstream commit fd92b7deb98a4edd31ffcc2d64cee36103805ff5 ]

    The commit 0775a9cbc694e8c7 ("usbip: vhci extension: modifications
    to vhci driver") introduced multiple controllers, but the status
    of the ports are only extracted from the first status file, fix it.

    Reviewed-by: Krzysztof Opasiak <k.opasiak@samsung.com>
    Signed-off-by: Yuyang Du <yuyang.du@intel.com>
    Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    tools/usb/usbip/libsrc/vhci_driver.c | 27 +++++++++++++++++++++------
    1 file changed, 21 insertions(+), 6 deletions(-)

    diff --git a/tools/usb/usbip/libsrc/vhci_driver.c b/tools/usb/usbip/libsrc/vhci_driver.c
    index c589cfbd1cfe..1305a36f95d8 100644
    --- a/tools/usb/usbip/libsrc/vhci_driver.c
    +++ b/tools/usb/usbip/libsrc/vhci_driver.c
    @@ -107,18 +107,33 @@ static int parse_status(const char *value)
    return 0;
    }

    +#define MAX_STATUS_NAME 16
    +
    static int refresh_imported_device_list(void)
    {
    const char *attr_status;
    + char status[MAX_STATUS_NAME+1] = "status";
    + int i, ret;

    - attr_status = udev_device_get_sysattr_value(vhci_driver->hc_device,
    - "status");
    - if (!attr_status) {
    - err("udev_device_get_sysattr_value failed");
    - return -1;
    + for (i = 0; i < vhci_driver->ncontrollers; i++) {
    + if (i > 0)
    + snprintf(status, sizeof(status), "status.%d", i);
    +
    + attr_status = udev_device_get_sysattr_value(vhci_driver->hc_device,
    + status);
    + if (!attr_status) {
    + err("udev_device_get_sysattr_value failed");
    + return -1;
    + }
    +
    + dbg("controller %d", i);
    +
    + ret = parse_status(attr_status);
    + if (ret != 0)
    + return ret;
    }

    - return parse_status(attr_status);
    + return 0;
    }

    static int get_nports(void)
    --
    2.15.1
    \
     
     \ /
      Last update: 2018-04-09 03:36    [W:4.190 / U:0.432 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site