diff options
Diffstat (limited to 'tools/usb')
| -rw-r--r-- | tools/usb/usbip/libsrc/vhci_driver.c | 24 | ||||
| -rw-r--r-- | tools/usb/usbip/src/utils.c | 9 | 
2 files changed, 22 insertions, 11 deletions
diff --git a/tools/usb/usbip/libsrc/vhci_driver.c b/tools/usb/usbip/libsrc/vhci_driver.c index 5727dfb15a83..c9c81614a66a 100644 --- a/tools/usb/usbip/libsrc/vhci_driver.c +++ b/tools/usb/usbip/libsrc/vhci_driver.c @@ -50,14 +50,14 @@ static int parse_status(const char *value)  	while (*c != '\0') {  		int port, status, speed, devid; -		unsigned long socket; +		int sockfd;  		char lbusid[SYSFS_BUS_ID_SIZE];  		struct usbip_imported_device *idev;  		char hub[3]; -		ret = sscanf(c, "%2s  %d %d %d %x %lx %31s\n", +		ret = sscanf(c, "%2s  %d %d %d %x %u %31s\n",  				hub, &port, &status, &speed, -				&devid, &socket, lbusid); +				&devid, &sockfd, lbusid);  		if (ret < 5) {  			dbg("sscanf failed: %d", ret); @@ -66,7 +66,7 @@ static int parse_status(const char *value)  		dbg("hub %s port %d status %d speed %d devid %x",  				hub, port, status, speed, devid); -		dbg("socket %lx lbusid %s", socket, lbusid); +		dbg("sockfd %u lbusid %s", sockfd, lbusid);  		/* if a device is connected, look at it */  		idev = &vhci_driver->idev[port]; @@ -106,7 +106,7 @@ static int parse_status(const char *value)  	return 0;  } -#define MAX_STATUS_NAME 16 +#define MAX_STATUS_NAME 18  static int refresh_imported_device_list(void)  { @@ -329,9 +329,17 @@ err:  int usbip_vhci_get_free_port(uint32_t speed)  {  	for (int i = 0; i < vhci_driver->nports; i++) { -		if (speed == USB_SPEED_SUPER && -		    vhci_driver->idev[i].hub != HUB_SPEED_SUPER) -			continue; + +		switch (speed) { +		case	USB_SPEED_SUPER: +			if (vhci_driver->idev[i].hub != HUB_SPEED_SUPER) +				continue; +		break; +		default: +			if (vhci_driver->idev[i].hub != HUB_SPEED_HIGH) +				continue; +		break; +		}  		if (vhci_driver->idev[i].status == VDEV_ST_NULL)  			return vhci_driver->idev[i].port; diff --git a/tools/usb/usbip/src/utils.c b/tools/usb/usbip/src/utils.c index 2b3d6d235015..3d7b42e77299 100644 --- a/tools/usb/usbip/src/utils.c +++ b/tools/usb/usbip/src/utils.c @@ -30,6 +30,7 @@ int modify_match_busid(char *busid, int add)  	char command[SYSFS_BUS_ID_SIZE + 4];  	char match_busid_attr_path[SYSFS_PATH_MAX];  	int rc; +	int cmd_size;  	snprintf(match_busid_attr_path, sizeof(match_busid_attr_path),  		 "%s/%s/%s/%s/%s/%s", SYSFS_MNT_PATH, SYSFS_BUS_NAME, @@ -37,12 +38,14 @@ int modify_match_busid(char *busid, int add)  		 attr_name);  	if (add) -		snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s", busid); +		cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s", +				    busid);  	else -		snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s", busid); +		cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s", +				    busid);  	rc = write_sysfs_attribute(match_busid_attr_path, command, -				   sizeof(command)); +				   cmd_size);  	if (rc < 0) {  		dbg("failed to write match_busid: %s", strerror(errno));  		return -1;  | 

