On 05/22/2017 04:20 AM, Yuyang Du wrote: > From: Yuyang Du <yuyang.du@xxxxxxxxx> > > 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@xxxxxxxxxxx> > Signed-off-by: Yuyang Du <yuyang.du@xxxxxxxxx> Acked-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> thanks, -- Shuah > --- > 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 f6f3a19..aa82c4b 100644 > --- a/tools/usb/usbip/libsrc/vhci_driver.c > +++ b/tools/usb/usbip/libsrc/vhci_driver.c > @@ -108,18 +108,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) > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html