[PATCH v2] usbip: tools: Add usbip host driver availability check

Zongmin Zhou
2026-03-25T02:26:55Z

From: Zongmin Zhou <zhouzongmin@kylinos.cn>

Currently, usbip_generic_driver_open() doesn't verify that the required
kernel module (usbip-host or usbip-vudc) is actually loaded.
The function returns success even when no driver is present,
leading to usbipd daemon run success without driver loaded.

So add a check function to ensure usbip host driver has been loaded.

Suggested-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Zongmin Zhou <zhouzongmin@kylinos.cn>
---
Changes in v2:
- Use system calls directly instead of checking sysfs dir.

tools/usb/usbip/libsrc/usbip_device_driver.c | 7 +++++--
tools/usb/usbip/libsrc/usbip_host_driver.c | 8 ++++++--
2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/tools/usb/usbip/libsrc/usbip_device_driver.c b/tools/usb/usbip/libsrc/usbip_device_driver.c
index 927a151fa9aa..45ab647ef241 100644
--- a/tools/usb/usbip/libsrc/usbip_device_driver.c
+++ b/tools/usb/usbip/libsrc/usbip_device_driver.c
@@ -136,10 +136,13 @@ static int usbip_device_driver_open(struct usbip_host_driver *hdriver)
hdriver->ndevs = 0;
INIT_LIST_HEAD(&hdriver->edev_list);

- ret = usbip_generic_driver_open(hdriver);
- if (ret)
+ if (system("/sbin/lsmod | grep -q usbip_vudc")){
err("please load " USBIP_CORE_MOD_NAME ".ko and "
USBIP_DEVICE_DRV_NAME ".ko!");
+ return -1;
+ }
+
+ ret = usbip_generic_driver_open(hdriver);

return ret;
}
diff --git a/tools/usb/usbip/libsrc/usbip_host_driver.c b/tools/usb/usbip/libsrc/usbip_host_driver.c
index 573e73ec36bd..f0ac941d4f6e 100644
--- a/tools/usb/usbip/libsrc/usbip_host_driver.c
+++ b/tools/usb/usbip/libsrc/usbip_host_driver.c
@@ -31,10 +31,14 @@ static int usbip_host_driver_open(struct usbip_host_driver *hdriver)
hdriver->ndevs = 0;
INIT_LIST_HEAD(&hdriver->edev_list);

- ret = usbip_generic_driver_open(hdriver);
- if (ret)
+ if (system("/sbin/lsmod | grep -q usbip_host")){
err("please load " USBIP_CORE_MOD_NAME ".ko and "
USBIP_HOST_DRV_NAME ".ko!");
+ return -1;
+ }
+
+ ret = usbip_generic_driver_open(hdriver);
+
return ret;
}

--
2.34.1