aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/skbuff.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2005-08-09 22:25:21 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 18:31:14 -0400
commit8728b834b226ffcf2c94a58530090e292af2a7bf (patch)
tree2fd51ff3b7097eb3ffc41ea3a1d8b3ba04715b4c /include/linux/skbuff.h
parent6869c4d8e066e21623c812c448a05f1ed931c9c6 (diff)
[NET]: Kill skb->list
Remove the "list" member of struct sk_buff, as it is entirely redundant. All SKB list removal callers know which list the SKB is on, so storing this in sk_buff does nothing other than taking up some space. Two tricky bits were SCTP, which I took care of, and two ATM drivers which Francois Romieu <romieu@fr.zoreil.com> fixed up. Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r--include/linux/skbuff.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 4b929c3c1a98..76c68851474c 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -204,7 +204,6 @@ struct sk_buff {
204 struct sk_buff *next; 204 struct sk_buff *next;
205 struct sk_buff *prev; 205 struct sk_buff *prev;
206 206
207 struct sk_buff_head *list;
208 struct sock *sk; 207 struct sock *sk;
209 struct timeval stamp; 208 struct timeval stamp;
210 struct net_device *dev; 209 struct net_device *dev;
@@ -597,7 +596,6 @@ static inline void __skb_queue_head(struct sk_buff_head *list,
597{ 596{
598 struct sk_buff *prev, *next; 597 struct sk_buff *prev, *next;
599 598
600 newsk->list = list;
601 list->qlen++; 599 list->qlen++;
602 prev = (struct sk_buff *)list; 600 prev = (struct sk_buff *)list;
603 next = prev->next; 601 next = prev->next;
@@ -622,7 +620,6 @@ static inline void __skb_queue_tail(struct sk_buff_head *list,
622{ 620{
623 struct sk_buff *prev, *next; 621 struct sk_buff *prev, *next;
624 622
625 newsk->list = list;
626 list->qlen++; 623 list->qlen++;
627 next = (struct sk_buff *)list; 624 next = (struct sk_buff *)list;
628 prev = next->prev; 625 prev = next->prev;
@@ -655,7 +652,6 @@ static inline struct sk_buff *__skb_dequeue(struct sk_buff_head *list)
655 next->prev = prev; 652 next->prev = prev;
656 prev->next = next; 653 prev->next = next;
657 result->next = result->prev = NULL; 654 result->next = result->prev = NULL;
658 result->list = NULL;
659 } 655 }
660 return result; 656 return result;
661} 657}
@@ -664,7 +660,7 @@ static inline struct sk_buff *__skb_dequeue(struct sk_buff_head *list)
664/* 660/*
665 * Insert a packet on a list. 661 * Insert a packet on a list.
666 */ 662 */
667extern void skb_insert(struct sk_buff *old, struct sk_buff *newsk); 663extern void skb_insert(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list);
668static inline void __skb_insert(struct sk_buff *newsk, 664static inline void __skb_insert(struct sk_buff *newsk,
669 struct sk_buff *prev, struct sk_buff *next, 665 struct sk_buff *prev, struct sk_buff *next,
670 struct sk_buff_head *list) 666 struct sk_buff_head *list)
@@ -672,24 +668,23 @@ static inline void __skb_insert(struct sk_buff *newsk,
672 newsk->next = next; 668 newsk->next = next;
673 newsk->prev = prev; 669 newsk->prev = prev;
674 next->prev = prev->next = newsk; 670 next->prev = prev->next = newsk;
675 newsk->list = list;
676 list->qlen++; 671 list->qlen++;
677} 672}
678 673
679/* 674/*
680 * Place a packet after a given packet in a list. 675 * Place a packet after a given packet in a list.
681 */ 676 */
682extern void skb_append(struct sk_buff *old, struct sk_buff *newsk); 677extern void skb_append(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list);
683static inline void __skb_append(struct sk_buff *old, struct sk_buff *newsk) 678static inline void __skb_append(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list)
684{ 679{
685 __skb_insert(newsk, old, old->next, old->list); 680 __skb_insert(newsk, old, old->next, list);
686} 681}
687 682
688/* 683/*
689 * remove sk_buff from list. _Must_ be called atomically, and with 684 * remove sk_buff from list. _Must_ be called atomically, and with
690 * the list known.. 685 * the list known..
691 */ 686 */
692extern void skb_unlink(struct sk_buff *skb); 687extern void skb_unlink(struct sk_buff *skb, struct sk_buff_head *list);
693static inline void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list) 688static inline void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list)
694{ 689{
695 struct sk_buff *next, *prev; 690 struct sk_buff *next, *prev;
@@ -698,7 +693,6 @@ static inline void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list)
698 next = skb->next; 693 next = skb->next;
699 prev = skb->prev; 694 prev = skb->prev;
700 skb->next = skb->prev = NULL; 695 skb->next = skb->prev = NULL;
701 skb->list = NULL;
702 next->prev = prev; 696 next->prev = prev;
703 prev->next = next; 697 prev->next = next;
704} 698}