|
@@ -740,12 +740,14 @@ static void cdc_ncm_free(struct cdc_ncm_ctx *ctx)
|
|
|
int cdc_ncm_change_mtu(struct net_device *net, int new_mtu)
|
|
|
{
|
|
|
struct usbnet *dev = netdev_priv(net);
|
|
|
- struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0];
|
|
|
- int maxmtu = ctx->max_datagram_size - cdc_ncm_eth_hlen(dev);
|
|
|
+ int maxmtu = cdc_ncm_max_dgram_size(dev) - cdc_ncm_eth_hlen(dev);
|
|
|
|
|
|
if (new_mtu <= 0 || new_mtu > maxmtu)
|
|
|
return -EINVAL;
|
|
|
+
|
|
|
net->mtu = new_mtu;
|
|
|
+ cdc_ncm_set_dgram_size(dev, new_mtu + cdc_ncm_eth_hlen(dev));
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(cdc_ncm_change_mtu);
|