diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index bd69faa77679bd165a98ade93e73e171a3f9e8a3..f1f1057d419a90095c698cb006c766d260791455 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -74,8 +74,18 @@ define KernelPackage/usb-eth-gadget
 	CONFIG_USB_ETH_RNDIS=y \
 	CONFIG_USB_ETH_EEM=y
   DEPENDS:=+kmod-usb-gadget +(!LINUX_3_3&&!LINUX_3_6):kmod-usb-lib-composite
+ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/gadget/u_ether.ko),)
+  FILES:= \
+	$(LINUX_DIR)/drivers/usb/gadget/u_ether.ko \
+	$(LINUX_DIR)/drivers/usb/gadget/u_rndis.ko \
+	$(LINUX_DIR)/drivers/usb/gadget/usb_f_rndis.ko \
+	$(LINUX_DIR)/drivers/usb/gadget/usb_f_eem.ko \
+	$(LINUX_DIR)/drivers/usb/gadget/g_ether.ko
+  AUTOLOAD:=$(call AutoLoad,52,g_ether)
+else
   FILES:=$(LINUX_DIR)/drivers/usb/gadget/g_ether.ko
   AUTOLOAD:=$(call AutoLoad,52,g_ether)
+endif
   $(call AddDepends/usb)
 endef