Uses the same method as various other drivers: shut the device down, change the MTU, then bring it back up again. Tested on Renesas D3 Draak board. Signed-off-by: Ulrich Hecht <uli+renesas@xxxxxxxx> --- drivers/net/ethernet/renesas/ravb_main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index ef8f089..02c247c 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1810,13 +1810,16 @@ static int ravb_do_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) static int ravb_change_mtu(struct net_device *ndev, int new_mtu) { - if (netif_running(ndev)) - return -EBUSY; + if (!netif_running(ndev)) { + ndev->mtu = new_mtu; + netdev_update_features(ndev); + return 0; + } + ravb_close(ndev); ndev->mtu = new_mtu; - netdev_update_features(ndev); - return 0; + return ravb_open(ndev); } static void ravb_set_rx_csum(struct net_device *ndev, bool enable) -- 2.7.4