W dniu 12 maja 2011 23:41 użytkownik Mahesh Bandewar <[email protected]> napisał: > On Wed, May 11, 2011 at 10:50 PM, Michał Mirosław <[email protected]> wrote: >> W dniu 12 maja 2011 01:11 użytkownik Mahesh Bandewar >> <[email protected]> napisał: >>> On Wed, May 11, 2011 at 12:15 PM, Michał Mirosław <[email protected]> wrote: >>>> If e1000_set_loopback() fails, this should set dev->features to passed >>>> features (but keeping NETIF_F_LOOPBACK unchanged in dev->features) to >>>> keep the state consistent. >>> set_features() can return the return code of set_loopback() instead of >>> 0; this way the consistency will be maintained. >> Only as long as NETIF_F_LOOPBACK is the only bit set in hw_features. >> netdev_update_features() can't really know which features were changed >> and which failed when ndo_set_features callback returns non-zero. > This is more of an API shortcoming. Callback will have to revert > changes made (rollback) before returning non-zero value to keep it > consistent.
It might just update dev->features to match instead of rollback. It could also start some recovery process that eventually calls netdev_update_features() again to try the change again. IOW, the information what changes failed are returned implicitly in modified dev->features. When callback returns 0, netdev_update_features() assumes that all were set correctly and updates dev->features itself. Best Regards, Michał Mirosław ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
