Thread (7 messages) flat view 7 messages, 3 authors, 2011-05-13

Re: [PATCHv1] e1000e: Allow ethtool to enable/disable loopback.

From: Michał Mirosław <hidden>
Date: 2011-05-13 07:49:56

W dniu 12 maja 2011 23:41 użytkownik Mahesh Bandewar
[off-list ref] napisał:
On Wed, May 11, 2011 at 10:50 PM, Michał Mirosław [off-list ref] wrote:
quoted
W dniu 12 maja 2011 01:11 użytkownik Mahesh Bandewar
[off-list ref] napisał:
quoted
On Wed, May 11, 2011 at 12:15 PM, Michał Mirosław [off-list ref] wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help