Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
[cascardo/linux.git] / include / linux / ethtool.h
index 212f537..e658229 100644 (file)
@@ -158,19 +158,16 @@ static inline u32 ethtool_rxfh_indir_default(u32 index, u32 n_rx_rings)
  *     Returns zero if not supported for this specific device.
  * @get_rxfh_indir_size: Get the size of the RX flow hash indirection table.
  *     Returns zero if not supported for this specific device.
- * @get_rxfh_indir: Get the contents of the RX flow hash indirection table.
- *     Will not be called if @get_rxfh_indir_size returns zero.
  * @get_rxfh: Get the contents of the RX flow hash indirection table and hash
  *     key.
- *     Will not be called if @get_rxfh_indir_size and @get_rxfh_key_size
- *     returns zero.
+ *     Will only be called if one or both of @get_rxfh_indir_size and
+ *     @get_rxfh_key_size are implemented and return non-zero.
  *     Returns a negative error code or zero.
- * @set_rxfh_indir: Set the contents of the RX flow hash indirection table.
- *     Will not be called if @get_rxfh_indir_size returns zero.
- * @set_rxfh: Set the contents of the RX flow hash indirection table and
- *     hash key.
- *     Will not be called if @get_rxfh_indir_size and @get_rxfh_key_size
- *     returns zero.
+ * @set_rxfh: Set the contents of the RX flow hash indirection table and/or
+ *     hash key.  In case only the indirection table or hash key is to be
+ *     changed, the other argument will be %NULL.
+ *     Will only be called if one or both of @get_rxfh_indir_size and
+ *     @get_rxfh_key_size are implemented and return non-zero.
  *     Returns a negative error code or zero.
  * @get_channels: Get number of channels.
  * @set_channels: Set number of channels.  Returns a negative error code or
@@ -244,10 +241,9 @@ struct ethtool_ops {
        int     (*reset)(struct net_device *, u32 *);
        u32     (*get_rxfh_key_size)(struct net_device *);
        u32     (*get_rxfh_indir_size)(struct net_device *);
-       int     (*get_rxfh)(struct net_device *, u32 *, u8 *);
-       int     (*set_rxfh)(struct net_device *, u32 *, u8 *);
-       int     (*get_rxfh_indir)(struct net_device *, u32 *);
-       int     (*set_rxfh_indir)(struct net_device *, const u32 *);
+       int     (*get_rxfh)(struct net_device *, u32 *indir, u8 *key);
+       int     (*set_rxfh)(struct net_device *, const u32 *indir,
+                           const u8 *key);
        void    (*get_channels)(struct net_device *, struct ethtool_channels *);
        int     (*set_channels)(struct net_device *, struct ethtool_channels *);
        int     (*get_dump_flag)(struct net_device *, struct ethtool_dump *);