On 12/26/2016 08:08 AM, Nobuo Iwata wrote: > Modifications to host driver wrapper and its related operations (i.e. > bind/unbind). > > usbip_get_device() method was not used. The implementation of the > method searches a bound devices list by list index. The position in the > list is meaningless for any operations so it is assumed not to be used > in future. > > For this patch set, a method to find a bound device in the bound > devices list by bus-id is needed. usbip_get_device() is re-implemented > as a function to find a bound device by bus-id. Great. Now make this a separate patch and send separated from this series. PS. remember to fix title for this commit. > > bind and unbind function are exported to reuse by new connect and > disconnect operation. Here, connect and disconnect is NEW-3 and NEW-4 > respactively in diagram below. s/respactively/respectively and then this could be a commit titled: usbip: Make bind and unbind helpers global functions > > EXISTING) - invites devices from application(vhci)-side > +------+ +------------------+ > device--+ STUB | | application/VHCI | > +------+ +------------------+ > (server) (client) > 1) # usbipd ... start daemon > = = = > 2) # usbip list --local > 3) # usbip bind > <--- list bound devices --- 4) # usbip list --remote > <--- import a device ------ 5) # usbip attach > = = = > X disconnected 6) # usbip detach > 7) usbip unbind > > NEW) - dedicates devices from device(stub)-side > +------+ +------------------+ > device--+ STUB | | application/VHCI | > +------+ +------------------+ > (client) (server) > 1) # usbipa ... start daemon > = = = > 2) # usbip list --local > 3) # usbip connect --- export a device ------> > = = = > 4) # usbip disconnect --- un-export a device ---> > > Bind and unbind are done in connect and disconnect internally. > > Signed-off-by: Nobuo Iwata <nobuo.iwata@xxxxxxxxxxxxxxx> > --- > tools/usb/usbip/libsrc/usbip_host_common.c | 6 ++---- > tools/usb/usbip/libsrc/usbip_host_common.h | 8 ++++---- > tools/usb/usbip/src/usbip.h | 3 +++ > tools/usb/usbip/src/usbip_bind.c | 4 ++-- > tools/usb/usbip/src/usbip_unbind.c | 4 ++-- > 5 files changed, 13 insertions(+), 12 deletions(-) > > diff --git a/tools/usb/usbip/libsrc/usbip_host_common.c b/tools/usb/usbip/libsrc/usbip_host_common.c > index 9d41522..6a98d6c 100644 > --- a/tools/usb/usbip/libsrc/usbip_host_common.c > +++ b/tools/usb/usbip/libsrc/usbip_host_common.c > @@ -256,17 +256,15 @@ int usbip_export_device(struct usbip_exported_device *edev, int sockfd) > } > > struct usbip_exported_device *usbip_generic_get_device( > - struct usbip_host_driver *hdriver, int num) > + struct usbip_host_driver *hdriver, char *busid) > { > struct list_head *i; > struct usbip_exported_device *edev; > - int cnt = 0; > > list_for_each(i, &hdriver->edev_list) { > edev = list_entry(i, struct usbip_exported_device, node); > - if (num == cnt) > + if (!strncmp(busid, edev->udev.busid, SYSFS_BUS_ID_SIZE)) does it really make sense to use strncmp() instead of strcmp() here? Best regards, -- Krzysztof Opasiak Samsung R&D Institute Poland Samsung Electronics -- 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