提交 cdba756f 编写于 作者: E Eric Dumazet 提交者: David S. Miller

net: move ndo_features_check() close to ndo_start_xmit()

TX fast path uses ndo_start_xmit(), ndo_features_check() and
ndo_select_queue().

Move ndo_features_check() close to ndo_start_xmit() to increase
data locality.

All "struct net_device_ops" should now be using C99 initializers.
Signed-off-by: NEric Dumazet <edumazet@google.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 9e02d8ca
...@@ -812,6 +812,12 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev, ...@@ -812,6 +812,12 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev,
* (can also return NETDEV_TX_LOCKED iff NETIF_F_LLTX) * (can also return NETDEV_TX_LOCKED iff NETIF_F_LLTX)
* Required can not be NULL. * Required can not be NULL.
* *
* netdev_features_t (*ndo_fix_features)(struct net_device *dev,
* netdev_features_t features);
* Adjusts the requested feature flags according to device-specific
* constraints, and returns the resulting flags. Must not modify
* the device state.
*
* u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb, * u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb,
* void *accel_priv, select_queue_fallback_t fallback); * void *accel_priv, select_queue_fallback_t fallback);
* Called to decide which queue to when device supports multiple * Called to decide which queue to when device supports multiple
...@@ -959,12 +965,6 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev, ...@@ -959,12 +965,6 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev,
* Called to release previously enslaved netdev. * Called to release previously enslaved netdev.
* *
* Feature/offload setting functions. * Feature/offload setting functions.
* netdev_features_t (*ndo_fix_features)(struct net_device *dev,
* netdev_features_t features);
* Adjusts the requested feature flags according to device-specific
* constraints, and returns the resulting flags. Must not modify
* the device state.
*
* int (*ndo_set_features)(struct net_device *dev, netdev_features_t features); * int (*ndo_set_features)(struct net_device *dev, netdev_features_t features);
* Called to update device configuration to new features. Passed * Called to update device configuration to new features. Passed
* feature set might be less than what was returned by ndo_fix_features()). * feature set might be less than what was returned by ndo_fix_features()).
...@@ -1081,8 +1081,11 @@ struct net_device_ops { ...@@ -1081,8 +1081,11 @@ struct net_device_ops {
void (*ndo_uninit)(struct net_device *dev); void (*ndo_uninit)(struct net_device *dev);
int (*ndo_open)(struct net_device *dev); int (*ndo_open)(struct net_device *dev);
int (*ndo_stop)(struct net_device *dev); int (*ndo_stop)(struct net_device *dev);
netdev_tx_t (*ndo_start_xmit) (struct sk_buff *skb, netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb,
struct net_device *dev); struct net_device *dev);
netdev_features_t (*ndo_features_check)(struct sk_buff *skb,
struct net_device *dev,
netdev_features_t features);
u16 (*ndo_select_queue)(struct net_device *dev, u16 (*ndo_select_queue)(struct net_device *dev,
struct sk_buff *skb, struct sk_buff *skb,
void *accel_priv, void *accel_priv,
...@@ -1245,9 +1248,6 @@ struct net_device_ops { ...@@ -1245,9 +1248,6 @@ struct net_device_ops {
struct net_device *dev, struct net_device *dev,
void *priv); void *priv);
int (*ndo_get_lock_subclass)(struct net_device *dev); int (*ndo_get_lock_subclass)(struct net_device *dev);
netdev_features_t (*ndo_features_check) (struct sk_buff *skb,
struct net_device *dev,
netdev_features_t features);
int (*ndo_set_tx_maxrate)(struct net_device *dev, int (*ndo_set_tx_maxrate)(struct net_device *dev,
int queue_index, int queue_index,
u32 maxrate); u32 maxrate);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册