diff options
author | Michał Mirosław <mirq-linux@rere.qmqm.pl> | 2011-02-22 11:52:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-02-23 17:23:32 -0500 |
commit | 39fc0ce5710c53bad14aaba1a789eec810c556f9 (patch) | |
tree | dc5ee565d2fe030dab7cdc1757c822ecc793cc4f /include/linux/ethtool.h | |
parent | 4e4db200541d49404ff39ac482efee072dd72144 (diff) |
net: Implement SFEATURES compatibility for not updated drivers
Use discrete setting ops for not updated drivers. This will not make
them conform to full G/SFEATURES semantics, though.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/ethtool.h')
-rw-r--r-- | include/linux/ethtool.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 54d776c2c1b5..aac3e2eeb4fd 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -591,6 +591,9 @@ struct ethtool_sfeatures { | |||
591 | * Probably there are other device-specific constraints on some features | 591 | * Probably there are other device-specific constraints on some features |
592 | * in the set. When %ETHTOOL_F_UNSUPPORTED is set, .valid is considered | 592 | * in the set. When %ETHTOOL_F_UNSUPPORTED is set, .valid is considered |
593 | * here as though ignored bits were cleared. | 593 | * here as though ignored bits were cleared. |
594 | * %ETHTOOL_F_COMPAT - some or all changes requested were made by calling | ||
595 | * compatibility functions. Requested offload state cannot be properly | ||
596 | * managed by kernel. | ||
594 | * | 597 | * |
595 | * Meaning of bits in the masks are obtained by %ETHTOOL_GSSET_INFO (number of | 598 | * Meaning of bits in the masks are obtained by %ETHTOOL_GSSET_INFO (number of |
596 | * bits in the arrays - always multiple of 32) and %ETHTOOL_GSTRINGS commands | 599 | * bits in the arrays - always multiple of 32) and %ETHTOOL_GSTRINGS commands |
@@ -600,10 +603,12 @@ struct ethtool_sfeatures { | |||
600 | enum ethtool_sfeatures_retval_bits { | 603 | enum ethtool_sfeatures_retval_bits { |
601 | ETHTOOL_F_UNSUPPORTED__BIT, | 604 | ETHTOOL_F_UNSUPPORTED__BIT, |
602 | ETHTOOL_F_WISH__BIT, | 605 | ETHTOOL_F_WISH__BIT, |
606 | ETHTOOL_F_COMPAT__BIT, | ||
603 | }; | 607 | }; |
604 | 608 | ||
605 | #define ETHTOOL_F_UNSUPPORTED (1 << ETHTOOL_F_UNSUPPORTED__BIT) | 609 | #define ETHTOOL_F_UNSUPPORTED (1 << ETHTOOL_F_UNSUPPORTED__BIT) |
606 | #define ETHTOOL_F_WISH (1 << ETHTOOL_F_WISH__BIT) | 610 | #define ETHTOOL_F_WISH (1 << ETHTOOL_F_WISH__BIT) |
611 | #define ETHTOOL_F_COMPAT (1 << ETHTOOL_F_COMPAT__BIT) | ||
607 | 612 | ||
608 | #ifdef __KERNEL__ | 613 | #ifdef __KERNEL__ |
609 | 614 | ||