|
@@ -266,6 +266,16 @@ response_error:
|
|
|
return -EDOM;
|
|
|
}
|
|
|
|
|
|
+/* same as usbnet_netdev_ops but MTU change not allowed */
|
|
|
+static const struct net_device_ops rndis_netdev_ops = {
|
|
|
+ .ndo_open = usbnet_open,
|
|
|
+ .ndo_stop = usbnet_stop,
|
|
|
+ .ndo_start_xmit = usbnet_start_xmit,
|
|
|
+ .ndo_tx_timeout = usbnet_tx_timeout,
|
|
|
+ .ndo_set_mac_address = eth_mac_addr,
|
|
|
+ .ndo_validate_addr = eth_validate_addr,
|
|
|
+};
|
|
|
+
|
|
|
int
|
|
|
generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
|
|
|
{
|
|
@@ -327,7 +337,8 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
|
|
|
dev->rx_urb_size &= ~(dev->maxpacket - 1);
|
|
|
u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size);
|
|
|
|
|
|
- net->change_mtu = NULL;
|
|
|
+ net->netdev_ops = &rndis_netdev_ops;
|
|
|
+
|
|
|
retval = rndis_command(dev, u.header, CONTROL_BUFFER_SIZE);
|
|
|
if (unlikely(retval < 0)) {
|
|
|
/* it might not even be an RNDIS device!! */
|