Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[linux-2.6.git] / include / linux / netdevice.h
index bac2c45..f245568 100644 (file)
@@ -313,10 +313,11 @@ struct napi_struct {
 #ifdef CONFIG_NETPOLL
        spinlock_t              poll_lock;
        int                     poll_owner;
-       struct net_device       *dev;
 #endif
+       struct net_device       *dev;
        struct list_head        dev_list;
        struct sk_buff          *gro_list;
+       struct sk_buff          *skb;
 };
 
 enum
@@ -990,6 +991,9 @@ struct napi_gro_cb {
 
        /* Number of segments aggregated. */
        int count;
+
+       /* Free the skb? */
+       int free;
 };
 
 #define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb)
@@ -1011,6 +1015,14 @@ struct packet_type {
        struct list_head        list;
 };
 
+struct napi_gro_fraginfo {
+       skb_frag_t frags[MAX_SKB_FRAGS];
+       unsigned int nr_frags;
+       unsigned int ip_summed;
+       unsigned int len;
+       __wsum csum;
+};
+
 #include <linux/interrupt.h>
 #include <linux/notifier.h>
 
@@ -1358,8 +1370,16 @@ extern int               netif_rx_ni(struct sk_buff *skb);
 #define HAVE_NETIF_RECEIVE_SKB 1
 extern int             netif_receive_skb(struct sk_buff *skb);
 extern void            napi_gro_flush(struct napi_struct *napi);
+extern int             dev_gro_receive(struct napi_struct *napi,
+                                       struct sk_buff *skb);
 extern int             napi_gro_receive(struct napi_struct *napi,
                                         struct sk_buff *skb);
+extern void            napi_reuse_skb(struct napi_struct *napi,
+                                      struct sk_buff *skb);
+extern struct sk_buff *        napi_fraginfo_skb(struct napi_struct *napi,
+                                         struct napi_gro_fraginfo *info);
+extern int             napi_gro_frags(struct napi_struct *napi,
+                                      struct napi_gro_fraginfo *info);
 extern void            netif_nit_deliver(struct sk_buff *skb);
 extern int             dev_valid_name(const char *name);
 extern int             dev_ioctl(struct net *net, unsigned int cmd, void __user *);