Messages in this thread |  | | Date | Wed, 25 Mar 2026 09:58:19 +0100 | | From | Greg KH <> | | Subject | Re: [PATCH v2] usbip: tools: Add usbip host driver availability check |
| |
On Wed, Mar 25, 2026 at 10:26:34AM +0800, Zongmin Zhou wrote: > 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")){
What happens if the module is built into the kernel?
> 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")){
Same here, what happens if it is built in?
thanks,
greg k-h
|  |