|
@@ -222,7 +222,7 @@ static struct usb_function *f_rndis;
|
|
|
* the first one present. That's to make Microsoft's drivers happy,
|
|
|
* and to follow DOCSIS 1.0 (cable modem standard).
|
|
|
*/
|
|
|
-static int __init rndis_do_config(struct usb_configuration *c)
|
|
|
+static int rndis_do_config(struct usb_configuration *c)
|
|
|
{
|
|
|
int status;
|
|
|
|
|
@@ -264,7 +264,7 @@ MODULE_PARM_DESC(use_eem, "use CDC EEM mode");
|
|
|
/*
|
|
|
* We _always_ have an ECM, CDC Subset, or EEM configuration.
|
|
|
*/
|
|
|
-static int __init eth_do_config(struct usb_configuration *c)
|
|
|
+static int eth_do_config(struct usb_configuration *c)
|
|
|
{
|
|
|
int status = 0;
|
|
|
|
|
@@ -318,7 +318,7 @@ static struct usb_configuration eth_config_driver = {
|
|
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
-static int __init eth_bind(struct usb_composite_dev *cdev)
|
|
|
+static int eth_bind(struct usb_composite_dev *cdev)
|
|
|
{
|
|
|
struct usb_gadget *gadget = cdev->gadget;
|
|
|
struct f_eem_opts *eem_opts = NULL;
|
|
@@ -447,7 +447,7 @@ fail:
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
-static int __exit eth_unbind(struct usb_composite_dev *cdev)
|
|
|
+static int eth_unbind(struct usb_composite_dev *cdev)
|
|
|
{
|
|
|
if (has_rndis()) {
|
|
|
usb_put_function(f_rndis);
|
|
@@ -466,13 +466,13 @@ static int __exit eth_unbind(struct usb_composite_dev *cdev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static __refdata struct usb_composite_driver eth_driver = {
|
|
|
+static struct usb_composite_driver eth_driver = {
|
|
|
.name = "g_ether",
|
|
|
.dev = &device_desc,
|
|
|
.strings = dev_strings,
|
|
|
.max_speed = USB_SPEED_SUPER,
|
|
|
.bind = eth_bind,
|
|
|
- .unbind = __exit_p(eth_unbind),
|
|
|
+ .unbind = eth_unbind,
|
|
|
};
|
|
|
|
|
|
module_usb_composite_driver(eth_driver);
|