Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37e47d5c authored by Yuyang Du's avatar Yuyang Du Committed by Greg Kroah-Hartman
Browse files

usb: usbip tool: Fix get_nports()



The commit 0775a9cb ("usbip: vhci extension: modifications
to vhci driver") introduced multiple controllers, and nports as a sys
file, and claimed to read the nports from it, but it didn't.

In addition, the get_nports() has been so wrong that even with 8 port
lines for instance, it gets 7 (I am guessing it is due to a '\n' mess).
Nevertheless, we fix it by reading the nports attribute.

Reviewed-by: default avatarKrzysztof Opasiak <k.opasiak@samsung.com>
Signed-off-by: default avatarYuyang Du <yuyang.du@intel.com>
Acked-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 69307ccb
Loading
Loading
Loading
Loading
+5 −23
Original line number Diff line number Diff line
@@ -123,33 +123,15 @@ static int refresh_imported_device_list(void)

static int get_nports(void)
{
	char *c;
	int nports = 0;
	const char *attr_status;
	const char *attr_nports;

	attr_status = udev_device_get_sysattr_value(vhci_driver->hc_device,
					       "status");
	if (!attr_status) {
		err("udev_device_get_sysattr_value failed");
	attr_nports = udev_device_get_sysattr_value(vhci_driver->hc_device, "nports");
	if (!attr_nports) {
		err("udev_device_get_sysattr_value nports failed");
		return -1;
	}

	/* skip a header line */
	c = strchr(attr_status, '\n');
	if (!c)
		return 0;
	c++;

	while (*c != '\0') {
		/* go to the next line */
		c = strchr(c, '\n');
		if (!c)
			return nports;
		c++;
		nports += 1;
	}

	return nports;
	return (int)strtoul(attr_nports, NULL, 10);
}

/*