netdev: Move gso_skb into netdev_queue.
[deliverable/linux.git] / include / linux / netdevice.h
index e009c6fbf5cdf795bc60760bc39a5c135f248285..aae6c6d153f2e93582f1dfaa45902076f5a9a0a7 100644 (file)
@@ -448,6 +448,16 @@ static inline void napi_synchronize(const struct napi_struct *n)
 # define napi_synchronize(n)   barrier()
 #endif
 
+struct netdev_queue {
+       spinlock_t              lock;
+       struct net_device       *dev;
+       struct Qdisc            *qdisc;
+       struct sk_buff          *gso_skb;
+       struct Qdisc            *qdisc_sleeping;
+       struct list_head        qdisc_list;
+       struct netdev_queue     *next_sched;
+};
+
 /*
  *     The DEVICE structure.
  *     Actually, this whole structure is a big mistake.  It mixes I/O
@@ -537,8 +547,6 @@ struct net_device
 #define NETIF_F_V6_CSUM                (NETIF_F_GEN_CSUM | NETIF_F_IPV6_CSUM)
 #define NETIF_F_ALL_CSUM       (NETIF_F_V4_CSUM | NETIF_F_V6_CSUM)
 
-       struct net_device       *next_sched;
-
        /* Interface index. Unique device identifier    */
        int                     ifindex;
        int                     iflink;
@@ -624,23 +632,10 @@ struct net_device
 
        unsigned char           broadcast[MAX_ADDR_LEN];        /* hw bcast add */
 
-       /* ingress path synchronizer */
-       spinlock_t              ingress_lock;
-       struct Qdisc            *qdisc_ingress;
-
-/*
- * Cache line mostly used on queue transmit path (qdisc)
- */
-       /* device queue lock */
-       spinlock_t              queue_lock ____cacheline_aligned_in_smp;
-       struct Qdisc            *qdisc;
-       struct Qdisc            *qdisc_sleeping;
-       struct list_head        qdisc_list;
+       struct netdev_queue     rx_queue;
+       struct netdev_queue     tx_queue ____cacheline_aligned_in_smp;
        unsigned long           tx_queue_len;   /* Max frames per queue allowed */
 
-       /* Partially transmitted GSO packet. */
-       struct sk_buff          *gso_skb;
-
 /*
  * One part is mostly used on xmit path (device)
  */
@@ -942,7 +937,7 @@ static inline int unregister_gifconf(unsigned int family)
  */
 struct softnet_data
 {
-       struct net_device       *output_queue;
+       struct netdev_queue     *output_queue;
        struct sk_buff_head     input_pkt_queue;
        struct list_head        poll_list;
        struct sk_buff          *completion_queue;
This page took 0.030789 seconds and 5 git commands to generate.