On 01.01.2019 08:54, Kirill Tkhai wrote: > On 01.01.2019 09:42, Murali Krishna Policharla wrote: >> Store newly configured mtu settings in the netdevice after mtu >> configuration is successful to the dsa switch. >> >> Fixes: 2315dc91a5 ("net: make dev_set_mtu() honor notification return code") >> Signed-off-by: Murali Krishna Policharla <murali.policha...@broadcom.com> >> Reviewed-by: Florian Fainelli <florian.faine...@broadcom.com> >> --- >> net/core/dev.c | 9 ++++++--- >> 1 file changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/net/core/dev.c b/net/core/dev.c >> index 722d50d..58617aa 100644 >> --- a/net/core/dev.c >> +++ b/net/core/dev.c >> @@ -7586,12 +7586,15 @@ int dev_change_flags(struct net_device *dev, >> unsigned int flags) >> int __dev_set_mtu(struct net_device *dev, int new_mtu) >> { >> const struct net_device_ops *ops = dev->netdev_ops; >> + int ret = 0; >> >> if (ops->ndo_change_mtu) >> - return ops->ndo_change_mtu(dev, new_mtu); > > Is there a .ndo_change_mtu callback, which does not assign a new mtu itself? > So far all drivers have to do it themselves. But IMO this is more a workaround for the core not doing it. It's something the core should do. Now we can remove this from drivers.
>> + ret = ops->ndo_change_mtu(dev, new_mtu); >> >> - dev->mtu = new_mtu; >> - return 0; >> + if (ret >= 0) >> + dev->mtu = new_mtu; >> + >> + return ret; >> } >> EXPORT_SYMBOL(__dev_set_mtu); >> >> >