Currently ST_OK and ST_NA are the only values used to communicate
status of a request from a client. Use new error codes to clearly
indicate what failed. For example, when client sends request to
import a device that isn't export-able, send ST_DEV_BUSY to the client.

Signed-off-by: Shuah Khan <shua...@osg.samsung.com>
---
 tools/usb/usbip/libsrc/usbip_host_common.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/usb/usbip/libsrc/usbip_host_common.c 
b/tools/usb/usbip/libsrc/usbip_host_common.c
index 6ff7b601f854..dc93fadbee96 100644
--- a/tools/usb/usbip/libsrc/usbip_host_common.c
+++ b/tools/usb/usbip/libsrc/usbip_host_common.c
@@ -234,14 +234,17 @@ int usbip_export_device(struct usbip_exported_device 
*edev, int sockfd)
                switch (edev->status) {
                case SDEV_ST_ERROR:
                        dbg("status SDEV_ST_ERROR");
+                       ret = ST_DEV_ERR;
                        break;
                case SDEV_ST_USED:
                        dbg("status SDEV_ST_USED");
+                       ret = ST_DEV_BUSY;
                        break;
                default:
                        dbg("status unknown: 0x%x", edev->status);
+                       ret = -1;
                }
-               return -1;
+               return ret;
        }
 
        /* only the first interface is true */
-- 
2.14.1

Reply via email to