From 0baaabb640c23149650fe5940b276069cea248a3 Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Wed, 16 May 2018 16:57:29 -0300 Subject: [PATCH 1/2] usbip: Remove obsolete patches These patches are obsolete and are never applied. Signed-off-by: Eneas U de Queiroz --- net/usbip/patches/001-upstream_svn_r99.diff | 11 - net/usbip/patches/002-upstream_svn_r152.patch | 229 ------------------ 2 files changed, 240 deletions(-) delete mode 100644 net/usbip/patches/001-upstream_svn_r99.diff delete mode 100644 net/usbip/patches/002-upstream_svn_r152.patch diff --git a/net/usbip/patches/001-upstream_svn_r99.diff b/net/usbip/patches/001-upstream_svn_r99.diff deleted file mode 100644 index aa193e136..000000000 --- a/net/usbip/patches/001-upstream_svn_r99.diff +++ /dev/null @@ -1,11 +0,0 @@ -Index: trunk/src/cmd/Makefile.am -=================================================================== ---- trunk/src/cmd/Makefile.am (revision 98) -+++ trunk/src/cmd/Makefile.am (revision 99) -@@ -17,5 +17,5 @@ - INCLUDES = -I$(top_srcdir)/lib - LDADD = ../lib/libusbip.la @PACKAGE_LIBS@ - EXTRA_CFLAGS = @EXTRA_CFLAGS@ --AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@ -+AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@ -DUSBIDS_FILE='"@USBIDS_DIR@/usb.ids"' - diff --git a/net/usbip/patches/002-upstream_svn_r152.patch b/net/usbip/patches/002-upstream_svn_r152.patch deleted file mode 100644 index e7135a66c..000000000 --- a/net/usbip/patches/002-upstream_svn_r152.patch +++ /dev/null @@ -1,229 +0,0 @@ ---- a/drivers/head/stub_dev.c -+++ b/drivers/head/stub_dev.c -@@ -398,7 +398,11 @@ static int stub_probe(struct usb_interfa - { - struct usb_device *udev = interface_to_usbdev(interface); - struct stub_device *sdev = NULL; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) - char *udev_busid = interface->dev.parent->bus_id; -+#else -+ char *udev_busid = dev_name(interface->dev.parent); -+#endif - int err = 0; - - udbg("Enter\n"); ---- a/drivers/head/stub_main.c -+++ b/drivers/head/stub_main.c -@@ -252,18 +252,17 @@ static int __init usb_stub_init(void) - return -ENOMEM; - } - -+ info(DRIVER_DESC "" DRIVER_VERSION); -+ -+ memset(busid_table, 0, sizeof(busid_table)); -+ spin_lock_init(&busid_table_lock); -+ - ret = usb_register(&stub_driver); - if (ret) { - uerr("usb_register failed %d\n", ret); - return ret; - } - -- -- info(DRIVER_DESC "" DRIVER_VERSION); -- -- memset(busid_table, 0, sizeof(busid_table)); -- spin_lock_init(&busid_table_lock); -- - ret = driver_create_file(&stub_driver.drvwrap.driver, &driver_attr_match_busid); - - if (ret) { ---- a/drivers/head/stub_rx.c -+++ b/drivers/head/stub_rx.c -@@ -159,7 +159,11 @@ static int tweak_set_configuration_cmd(s - * A user may need to set a special configuration value before - * exporting the device. - */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) - uinfo("set_configuration (%d) to %s\n", config, urb->dev->dev.bus_id); -+#else -+ uinfo("set_configuration (%d) to %s\n", config, dev_name(&urb->dev->dev)); -+#endif - uinfo("but, skip!\n"); - - return 0; -@@ -177,7 +181,11 @@ static int tweak_reset_device_cmd(struct - value = le16_to_cpu(req->wValue); - index = le16_to_cpu(req->wIndex); - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) - uinfo("reset_device (port %d) to %s\n", index, urb->dev->dev.bus_id); -+#else -+ uinfo("reset_device (port %d) to %s\n", index, dev_name(&urb->dev->dev)); -+#endif - - /* all interfaces should be owned by usbip driver, so just reset it. */ - ret = usb_lock_device_for_reset(urb->dev, NULL); -@@ -187,7 +195,11 @@ static int tweak_reset_device_cmd(struct - } - - /* try to reset the device */ -- ret = usb_reset_composite_device(urb->dev, NULL); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) -+ ret = usb_reset_composite_device(urb->dev, NULL); -+#else -+ ret = usb_reset_device(urb->dev); -+#endif - if (ret < 0) - uerr("device reset\n"); - ---- a/drivers/head/usbip_common.c -+++ b/drivers/head/usbip_common.c -@@ -55,10 +55,7 @@ static ssize_t show_flag(struct device * - static ssize_t store_flag(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { -- unsigned long flag; -- -- sscanf(buf, "%lx", &flag); -- usbip_debug_flag = flag; -+ sscanf(buf, "%lx", &usbip_debug_flag); - - return count; - } -@@ -390,7 +387,7 @@ int usbip_thread(void *param) - unlock_kernel(); - - /* srv.rb must wait for rx_thread starting */ -- complete(&ut->thread_done); -+ complete(&ut->thread_started); - - /* start of while loop */ - ut->loop_ops(ut); -@@ -403,15 +400,21 @@ int usbip_thread(void *param) - - void usbip_start_threads(struct usbip_device *ud) - { -+ - /* - * threads are invoked per one device (per one connection). - */ -+ INIT_COMPLETION(ud->tcp_rx.thread_started); -+ INIT_COMPLETION(ud->tcp_tx.thread_started); -+ INIT_COMPLETION(ud->tcp_rx.thread_done); -+ INIT_COMPLETION(ud->tcp_tx.thread_done); -+ - kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_rx, 0); - kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_tx, 0); - - /* confirm threads are starting */ -- wait_for_completion(&ud->tcp_rx.thread_done); -- wait_for_completion(&ud->tcp_tx.thread_done); -+ wait_for_completion(&ud->tcp_rx.thread_started); -+ wait_for_completion(&ud->tcp_tx.thread_started); - } - EXPORT_SYMBOL(usbip_start_threads); - -@@ -436,6 +439,7 @@ void usbip_task_init(struct usbip_task * - void (*loop_ops)(struct usbip_task *)) - { - ut->thread = NULL; -+ init_completion(&ut->thread_started); - init_completion(&ut->thread_done); - ut->name = name; - ut->loop_ops = loop_ops; ---- a/drivers/head/usbip_event.c -+++ b/drivers/head/usbip_event.c -@@ -38,7 +38,7 @@ void usbip_start_eh(struct usbip_device - - kernel_thread((int(*)(void *)) usbip_thread, (void *) eh, 0); - -- wait_for_completion(&eh->thread_done); -+ wait_for_completion(&eh->thread_started); - } - EXPORT_SYMBOL(usbip_start_eh); - ---- a/drivers/head/vhci_hcd.c -+++ b/drivers/head/vhci_hcd.c -@@ -58,7 +58,7 @@ static void vhci_stop(struct usb_hcd *hc - static int vhci_get_frame_number(struct usb_hcd *hcd); - - static const char driver_name[] = "vhci_hcd"; --static const char driver_desc[] = "USB/IP Virtual Host Contoroller"; -+static const char driver_desc[] = "USB/IP Virtual Host Controller"; - - - -@@ -416,14 +416,6 @@ static int vhci_hub_control(struct usb_h - case USB_PORT_FEAT_SUSPEND: - dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_SUSPEND\n"); - uerr(" not yet\n"); --#if 0 -- dum->port_status[rhport] |= (1 << USB_PORT_FEAT_SUSPEND); -- if (dum->driver->suspend) { -- spin_unlock (&dum->lock); -- dum->driver->suspend (&dum->gadget); -- spin_lock (&dum->lock); -- } --#endif - break; - case USB_PORT_FEAT_RESET: - dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_RESET\n"); -@@ -432,12 +424,6 @@ static int vhci_hub_control(struct usb_h - dum->port_status[rhport] &= ~(USB_PORT_STAT_ENABLE - | USB_PORT_STAT_LOW_SPEED - | USB_PORT_STAT_HIGH_SPEED); --#if 0 -- if (dum->driver) { -- dev_dbg (hardware, "disconnect\n"); -- stop_activity (dum, dum->driver); -- } --#endif - - /* FIXME test that code path! */ - } -@@ -1060,7 +1046,7 @@ static int vhci_hcd_probe(struct platfor - struct usb_hcd *hcd; - int ret; - -- uinfo("proving...\n"); -+ uinfo("probing...\n"); - - dbg_vhci_hc("name %s id %d\n", pdev->name, pdev->id); - -@@ -1076,7 +1062,11 @@ static int vhci_hcd_probe(struct platfor - * Allocate and initialize hcd. - * Our private data is also allocated automatically. - */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) - hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, pdev->dev.bus_id); -+#else -+ hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, dev_name(&pdev->dev)); -+#endif - if (!hcd) { - uerr("create hcd failed\n"); - return -ENOMEM; ---- a/drivers/head/vhci_sysfs.c -+++ b/drivers/head/vhci_sysfs.c -@@ -123,7 +123,11 @@ static ssize_t show_status(struct device - out += sprintf(out, "%03u %08x ", - vdev->speed, vdev->devid); - out += sprintf(out, "%16p ", vdev->ud.tcp_socket); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) - out += sprintf(out, "%s", vdev->udev->dev.bus_id); -+#else -+ out += sprintf(out, "%s", dev_name(&vdev->udev->dev)); -+#endif - - } else - out += sprintf(out, "000 000 000 0000000000000000 0-0"); ---- a/drivers/head/usbip_common.h -+++ b/drivers/head/usbip_common.h -@@ -300,6 +300,7 @@ struct usbip_device; - - struct usbip_task { - struct task_struct *thread; -+ struct completion thread_started; - struct completion thread_done; - char *name; - void (*loop_ops)(struct usbip_task *); From 633fe0dbdf1d33d08589d9c299f7509a51b76b2b Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Wed, 23 May 2018 14:18:17 -0300 Subject: [PATCH 2/2] usbip: adapt package to new kernel/libudev The sources for usbip are within the kernel. A patch that was included with the package, which changed the old signal name SIGCLD to the new one, SIGCHLD, was merged upstream. However, different targets use different kernel versions. Current version 4.14 and 4.9 are fine, but older versions do not have the patch applied. So, I used -DSIGCLD=SIGCHLD to please both worlds. libudev-fbsd currently used by openwrt does not implement the udev_device_get_devpath function. eudev's implementation of libudev sets it as (src/libudev/libudev-device.c): udev_device->devpath = udev_device->syspath + strlen("/sys"); I used a command-line define to use the same logic, as it works with new and old versions of the kernel--the use of ..devpath is quite recent. I also linked with libbsd, when using glibc. Signed-off-by: Eneas U de Queiroz --- net/usbip/Makefile | 9 ++++++--- net/usbip/patches-2.0/100-musl-compat.patch | 11 ----------- 2 files changed, 6 insertions(+), 14 deletions(-) delete mode 100644 net/usbip/patches-2.0/100-musl-compat.patch diff --git a/net/usbip/Makefile b/net/usbip/Makefile index fb52e7d72..612917cf0 100644 --- a/net/usbip/Makefile +++ b/net/usbip/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=usbip -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_LICENSE:=GPL-2.0 # Since kernel 2.6.39.1 userspace tools are inside the kernel tree @@ -52,7 +52,7 @@ endef define Package/usbip $(call Package/usbip/Default) TITLE+= (common) - DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd + DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd +USE_GLIBC:libbsd endef define Package/usbip-client @@ -70,13 +70,16 @@ endef CONFIGURE_PATH:=. MAKE_PATH:=. LIBTOOL_PATHS:=. -MAKE_FLAGS+=CFLAGS="-Wno-implicit-function-declaration" +MAKE_FLAGS+=CFLAGS='-Dudev_device_get_devpath\(x\)=udev_device_get_syspath\(x\)+strlen\(\"/sys\"\) \ + -DSIGCLD=SIGCHLD' +CONFIGURE_ARGS+= --disable-silent-rules define Build/Configure (cd $(PKG_BUILD_DIR); ./autogen.sh ); $(call Build/Configure/Default) endef +CONFIGURE_VARS+= $(if $(CONFIG_USE_GLIBC),LIBS='-lbsd -lpthread') CFLAGS+="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" USB_IDS_REV:=0a6be488b4c1485d30c9efee1cc895af5d4a1383 diff --git a/net/usbip/patches-2.0/100-musl-compat.patch b/net/usbip/patches-2.0/100-musl-compat.patch deleted file mode 100644 index a64678cb8..000000000 --- a/net/usbip/patches-2.0/100-musl-compat.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/usbipd.c -+++ b/src/usbipd.c -@@ -453,7 +453,7 @@ static void set_signal(void) - sigaction(SIGTERM, &act, NULL); - sigaction(SIGINT, &act, NULL); - act.sa_handler = SIG_IGN; -- sigaction(SIGCLD, &act, NULL); -+ sigaction(SIGCHLD, &act, NULL); - } - - static const char *pid_file;