Mon, Apr 11, 2016 at 10:10:46AM CEST, [email protected] wrote:
>This patch enhances the fjes_change_mtu() method
>by introducing new flag named FJES_RX_MTU_CHANGING_DONE
>in rx_status. At the same time, default MTU value is
>changed into 65510 bytes.
>
>Signed-off-by: Taku Izumi <[email protected]>
<snip>
>@@ -793,19 +798,54 @@ static int fjes_change_mtu(struct net_device *netdev,
>int new_mtu)
> if (new_mtu == netdev->mtu)
> return 0;
>
>- if (running)
>- fjes_close(netdev);
>+ ret = 0;
>+ break;
>+ }
>+ }
>+
>+ if (ret)
>+ return ret;
>
>- netdev->mtu = new_mtu;
>+ if (running) {
>+ for (epidx = 0; epidx < hw->max_epid; epidx++) {
>+ if (epidx == hw->my_epid)
>+ continue;
>+ hw->ep_shm_info[epidx].tx.info->v1i.rx_status &=
>+ ~FJES_RX_MTU_CHANGING_DONE;
>+ }
>+ netif_tx_stop_all_queues(netdev);
>+ netif_carrier_off(netdev);
>+ cancel_work_sync(&adapter->tx_stall_task);
>+ napi_disable(&adapter->napi);
>
>- if (running)
>- ret = fjes_open(netdev);
>+ msleep(1000);
Will it be enough? I would rather sleep 2000ms here, just to be sure :)