r8152: change rx early size when the mtu is changed
The rx early size is calculated with the mtu, so it has to be re-calculated when the mtu is changed. Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
464ec10a2d
commit
396e2e235a
@ -3777,6 +3777,7 @@ out:
|
|||||||
static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
|
static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
|
||||||
{
|
{
|
||||||
struct r8152 *tp = netdev_priv(dev);
|
struct r8152 *tp = netdev_priv(dev);
|
||||||
|
int ret;
|
||||||
|
|
||||||
switch (tp->version) {
|
switch (tp->version) {
|
||||||
case RTL_VER_01:
|
case RTL_VER_01:
|
||||||
@ -3789,9 +3790,22 @@ static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
|
|||||||
if (new_mtu < 68 || new_mtu > RTL8153_MAX_MTU)
|
if (new_mtu < 68 || new_mtu > RTL8153_MAX_MTU)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
ret = usb_autopm_get_interface(tp->intf);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
mutex_lock(&tp->control);
|
||||||
|
|
||||||
dev->mtu = new_mtu;
|
dev->mtu = new_mtu;
|
||||||
|
|
||||||
return 0;
|
if (netif_running(dev) && netif_carrier_ok(dev))
|
||||||
|
r8153_set_rx_early_size(tp);
|
||||||
|
|
||||||
|
mutex_unlock(&tp->control);
|
||||||
|
|
||||||
|
usb_autopm_put_interface(tp->intf);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct net_device_ops rtl8152_netdev_ops = {
|
static const struct net_device_ops rtl8152_netdev_ops = {
|
||||||
|
Loading…
Reference in New Issue
Block a user