gro: Name the GRO result enumeration type
This clarifies which return and parameter types are GRO result codes and not RX result codes. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0519d83d83
commit
5b252f0c2f
@@ -348,13 +348,14 @@ enum
|
|||||||
NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */
|
NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum gro_result {
|
||||||
GRO_MERGED,
|
GRO_MERGED,
|
||||||
GRO_MERGED_FREE,
|
GRO_MERGED_FREE,
|
||||||
GRO_HELD,
|
GRO_HELD,
|
||||||
GRO_NORMAL,
|
GRO_NORMAL,
|
||||||
GRO_DROP,
|
GRO_DROP,
|
||||||
};
|
};
|
||||||
|
typedef enum gro_result gro_result_t;
|
||||||
|
|
||||||
extern void __napi_schedule(struct napi_struct *n);
|
extern void __napi_schedule(struct napi_struct *n);
|
||||||
|
|
||||||
@@ -1480,16 +1481,17 @@ extern int netif_rx_ni(struct sk_buff *skb);
|
|||||||
#define HAVE_NETIF_RECEIVE_SKB 1
|
#define HAVE_NETIF_RECEIVE_SKB 1
|
||||||
extern int netif_receive_skb(struct sk_buff *skb);
|
extern int netif_receive_skb(struct sk_buff *skb);
|
||||||
extern void napi_gro_flush(struct napi_struct *napi);
|
extern void napi_gro_flush(struct napi_struct *napi);
|
||||||
extern int dev_gro_receive(struct napi_struct *napi,
|
extern gro_result_t dev_gro_receive(struct napi_struct *napi,
|
||||||
struct sk_buff *skb);
|
struct sk_buff *skb);
|
||||||
extern int napi_skb_finish(int ret, struct sk_buff *skb);
|
extern int napi_skb_finish(gro_result_t ret, struct sk_buff *skb);
|
||||||
extern int napi_gro_receive(struct napi_struct *napi,
|
extern int napi_gro_receive(struct napi_struct *napi,
|
||||||
struct sk_buff *skb);
|
struct sk_buff *skb);
|
||||||
extern void napi_reuse_skb(struct napi_struct *napi,
|
extern void napi_reuse_skb(struct napi_struct *napi,
|
||||||
struct sk_buff *skb);
|
struct sk_buff *skb);
|
||||||
extern struct sk_buff * napi_get_frags(struct napi_struct *napi);
|
extern struct sk_buff * napi_get_frags(struct napi_struct *napi);
|
||||||
extern int napi_frags_finish(struct napi_struct *napi,
|
extern int napi_frags_finish(struct napi_struct *napi,
|
||||||
struct sk_buff *skb, int ret);
|
struct sk_buff *skb,
|
||||||
|
gro_result_t ret);
|
||||||
extern struct sk_buff * napi_frags_skb(struct napi_struct *napi);
|
extern struct sk_buff * napi_frags_skb(struct napi_struct *napi);
|
||||||
extern int napi_gro_frags(struct napi_struct *napi);
|
extern int napi_gro_frags(struct napi_struct *napi);
|
||||||
|
|
||||||
|
@@ -74,8 +74,9 @@ u16 vlan_dev_vlan_id(const struct net_device *dev)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(vlan_dev_vlan_id);
|
EXPORT_SYMBOL(vlan_dev_vlan_id);
|
||||||
|
|
||||||
static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
|
static gro_result_t
|
||||||
unsigned int vlan_tci, struct sk_buff *skb)
|
vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
|
||||||
|
unsigned int vlan_tci, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct sk_buff *p;
|
struct sk_buff *p;
|
||||||
|
|
||||||
|
@@ -2476,7 +2476,7 @@ void napi_gro_flush(struct napi_struct *napi)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(napi_gro_flush);
|
EXPORT_SYMBOL(napi_gro_flush);
|
||||||
|
|
||||||
int dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct sk_buff **pp = NULL;
|
struct sk_buff **pp = NULL;
|
||||||
struct packet_type *ptype;
|
struct packet_type *ptype;
|
||||||
@@ -2484,7 +2484,7 @@ int dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
|||||||
struct list_head *head = &ptype_base[ntohs(type) & PTYPE_HASH_MASK];
|
struct list_head *head = &ptype_base[ntohs(type) & PTYPE_HASH_MASK];
|
||||||
int same_flow;
|
int same_flow;
|
||||||
int mac_len;
|
int mac_len;
|
||||||
int ret;
|
enum gro_result ret;
|
||||||
|
|
||||||
if (!(skb->dev->features & NETIF_F_GRO))
|
if (!(skb->dev->features & NETIF_F_GRO))
|
||||||
goto normal;
|
goto normal;
|
||||||
@@ -2568,7 +2568,8 @@ normal:
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(dev_gro_receive);
|
EXPORT_SYMBOL(dev_gro_receive);
|
||||||
|
|
||||||
static int __napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
static gro_result_t
|
||||||
|
__napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct sk_buff *p;
|
struct sk_buff *p;
|
||||||
|
|
||||||
@@ -2585,7 +2586,7 @@ static int __napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
|||||||
return dev_gro_receive(napi, skb);
|
return dev_gro_receive(napi, skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
int napi_skb_finish(int ret, struct sk_buff *skb)
|
int napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
int err = NET_RX_SUCCESS;
|
int err = NET_RX_SUCCESS;
|
||||||
|
|
||||||
@@ -2600,6 +2601,10 @@ int napi_skb_finish(int ret, struct sk_buff *skb)
|
|||||||
case GRO_MERGED_FREE:
|
case GRO_MERGED_FREE:
|
||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GRO_HELD:
|
||||||
|
case GRO_MERGED:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@@ -2652,7 +2657,8 @@ struct sk_buff *napi_get_frags(struct napi_struct *napi)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(napi_get_frags);
|
EXPORT_SYMBOL(napi_get_frags);
|
||||||
|
|
||||||
int napi_frags_finish(struct napi_struct *napi, struct sk_buff *skb, int ret)
|
int napi_frags_finish(struct napi_struct *napi, struct sk_buff *skb,
|
||||||
|
gro_result_t ret)
|
||||||
{
|
{
|
||||||
int err = NET_RX_SUCCESS;
|
int err = NET_RX_SUCCESS;
|
||||||
|
|
||||||
@@ -2674,6 +2680,9 @@ int napi_frags_finish(struct napi_struct *napi, struct sk_buff *skb, int ret)
|
|||||||
case GRO_MERGED_FREE:
|
case GRO_MERGED_FREE:
|
||||||
napi_reuse_skb(napi, skb);
|
napi_reuse_skb(napi, skb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GRO_MERGED:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
Reference in New Issue
Block a user