Commit 5b252f0c2f98df21fadf0f6cf189b87a0b938228
Committed by
David S. Miller
1 parent
0519d83d83
Exists in
master
and in
39 other branches
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>
Showing 3 changed files with 23 additions and 11 deletions Side-by-side Diff
include/linux/netdevice.h
... | ... | @@ -348,13 +348,14 @@ |
348 | 348 | NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */ |
349 | 349 | }; |
350 | 350 | |
351 | -enum { | |
351 | +enum gro_result { | |
352 | 352 | GRO_MERGED, |
353 | 353 | GRO_MERGED_FREE, |
354 | 354 | GRO_HELD, |
355 | 355 | GRO_NORMAL, |
356 | 356 | GRO_DROP, |
357 | 357 | }; |
358 | +typedef enum gro_result gro_result_t; | |
358 | 359 | |
359 | 360 | extern void __napi_schedule(struct napi_struct *n); |
360 | 361 | |
361 | 362 | |
362 | 363 | |
... | ... | @@ -1480,16 +1481,17 @@ |
1480 | 1481 | #define HAVE_NETIF_RECEIVE_SKB 1 |
1481 | 1482 | extern int netif_receive_skb(struct sk_buff *skb); |
1482 | 1483 | extern void napi_gro_flush(struct napi_struct *napi); |
1483 | -extern int dev_gro_receive(struct napi_struct *napi, | |
1484 | +extern gro_result_t dev_gro_receive(struct napi_struct *napi, | |
1484 | 1485 | struct sk_buff *skb); |
1485 | -extern int napi_skb_finish(int ret, struct sk_buff *skb); | |
1486 | +extern int napi_skb_finish(gro_result_t ret, struct sk_buff *skb); | |
1486 | 1487 | extern int napi_gro_receive(struct napi_struct *napi, |
1487 | 1488 | struct sk_buff *skb); |
1488 | 1489 | extern void napi_reuse_skb(struct napi_struct *napi, |
1489 | 1490 | struct sk_buff *skb); |
1490 | 1491 | extern struct sk_buff * napi_get_frags(struct napi_struct *napi); |
1491 | 1492 | extern int napi_frags_finish(struct napi_struct *napi, |
1492 | - struct sk_buff *skb, int ret); | |
1493 | + struct sk_buff *skb, | |
1494 | + gro_result_t ret); | |
1493 | 1495 | extern struct sk_buff * napi_frags_skb(struct napi_struct *napi); |
1494 | 1496 | extern int napi_gro_frags(struct napi_struct *napi); |
1495 | 1497 |
net/8021q/vlan_core.c
... | ... | @@ -74,8 +74,9 @@ |
74 | 74 | } |
75 | 75 | EXPORT_SYMBOL(vlan_dev_vlan_id); |
76 | 76 | |
77 | -static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, | |
78 | - unsigned int vlan_tci, struct sk_buff *skb) | |
77 | +static gro_result_t | |
78 | +vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, | |
79 | + unsigned int vlan_tci, struct sk_buff *skb) | |
79 | 80 | { |
80 | 81 | struct sk_buff *p; |
81 | 82 |
net/core/dev.c
... | ... | @@ -2476,7 +2476,7 @@ |
2476 | 2476 | } |
2477 | 2477 | EXPORT_SYMBOL(napi_gro_flush); |
2478 | 2478 | |
2479 | -int dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb) | |
2479 | +enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb) | |
2480 | 2480 | { |
2481 | 2481 | struct sk_buff **pp = NULL; |
2482 | 2482 | struct packet_type *ptype; |
... | ... | @@ -2484,7 +2484,7 @@ |
2484 | 2484 | struct list_head *head = &ptype_base[ntohs(type) & PTYPE_HASH_MASK]; |
2485 | 2485 | int same_flow; |
2486 | 2486 | int mac_len; |
2487 | - int ret; | |
2487 | + enum gro_result ret; | |
2488 | 2488 | |
2489 | 2489 | if (!(skb->dev->features & NETIF_F_GRO)) |
2490 | 2490 | goto normal; |
... | ... | @@ -2568,7 +2568,8 @@ |
2568 | 2568 | } |
2569 | 2569 | EXPORT_SYMBOL(dev_gro_receive); |
2570 | 2570 | |
2571 | -static int __napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) | |
2571 | +static gro_result_t | |
2572 | +__napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) | |
2572 | 2573 | { |
2573 | 2574 | struct sk_buff *p; |
2574 | 2575 | |
... | ... | @@ -2585,7 +2586,7 @@ |
2585 | 2586 | return dev_gro_receive(napi, skb); |
2586 | 2587 | } |
2587 | 2588 | |
2588 | -int napi_skb_finish(int ret, struct sk_buff *skb) | |
2589 | +int napi_skb_finish(gro_result_t ret, struct sk_buff *skb) | |
2589 | 2590 | { |
2590 | 2591 | int err = NET_RX_SUCCESS; |
2591 | 2592 | |
... | ... | @@ -2600,6 +2601,10 @@ |
2600 | 2601 | case GRO_MERGED_FREE: |
2601 | 2602 | kfree_skb(skb); |
2602 | 2603 | break; |
2604 | + | |
2605 | + case GRO_HELD: | |
2606 | + case GRO_MERGED: | |
2607 | + break; | |
2603 | 2608 | } |
2604 | 2609 | |
2605 | 2610 | return err; |
... | ... | @@ -2652,7 +2657,8 @@ |
2652 | 2657 | } |
2653 | 2658 | EXPORT_SYMBOL(napi_get_frags); |
2654 | 2659 | |
2655 | -int napi_frags_finish(struct napi_struct *napi, struct sk_buff *skb, int ret) | |
2660 | +int napi_frags_finish(struct napi_struct *napi, struct sk_buff *skb, | |
2661 | + gro_result_t ret) | |
2656 | 2662 | { |
2657 | 2663 | int err = NET_RX_SUCCESS; |
2658 | 2664 | |
... | ... | @@ -2673,6 +2679,9 @@ |
2673 | 2679 | |
2674 | 2680 | case GRO_MERGED_FREE: |
2675 | 2681 | napi_reuse_skb(napi, skb); |
2682 | + break; | |
2683 | + | |
2684 | + case GRO_MERGED: | |
2676 | 2685 | break; |
2677 | 2686 | } |
2678 | 2687 |