On 19 November 2014 16:56, Maxim Uvarov <[email protected]> wrote:
> Anders, check for -1 is not correct. It does not matter what is in man page.
> Don't read documentation :)

I'm sorry for not doing my homework! =)

> Look the kernel code:
>
> ./net/core/dev_ioctl.c:
>     case SIOCSIFMTU:    /* Set the MTU of a device */
>         return dev_set_mtu(dev, ifr->ifr_mtu);
>
> ./net/core/dev.c
> /**
>  *    dev_set_mtu - Change maximum transfer unit
>  *    @dev: device
>  *    @new_mtu: new transfer unit
>  *
>  *    Change the maximum transfer size of the network device.
>  */
> int dev_set_mtu(struct net_device *dev, int new_mtu)
> {
>     int err, orig_mtu;
>
>     if (new_mtu == dev->mtu)
>         return 0;
>
>     /*    MTU must be positive.     */
>     if (new_mtu < 0)
>         return -EINVAL;
>
>     if (!netif_device_present(dev))
>         return -ENODEV;
>
>     err = call_netdevice_notifiers(NETDEV_PRECHANGEMTU, dev);
>     err = notifier_to_errno(err);
>     if (err)
>         return err;
>
>     orig_mtu = dev->mtu;
>     err = __dev_set_mtu(dev, new_mtu);
>
>     if (!err) {
>         err = call_netdevice_notifiers(NETDEV_CHANGEMTU, dev);
>         err = notifier_to_errno(err);
>         if (err) {
>             /* setting mtu back and notifying everyone again,
>              * so that they have a chance to revert changes.
>              */
>             __dev_set_mtu(dev, orig_mtu);
>             call_netdevice_notifiers(NETDEV_CHANGEMTU, dev);
>         }
>     }
>     return err;
> }
>
> So I'm going to stay with mine solution. Did I convince you now? ;)

You convinced me that the documentation are wrong!

It is still better to check for < 0 and not only for !0 because there
are non-negative values
for success.

Because it's confusing to only check for zero in this case when ioctl
can return different values on success.

So if you don't agree than changing to < 0 it would be worth adding a
comment about it.

Cheers,
Anders

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to