[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>
This commit is contained in:

committed by
David S. Miller

parent
6869c4d8e0
commit
8728b834b2
@@ -714,7 +714,7 @@ static int llc_ui_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (uaddr)
|
||||
memcpy(uaddr, llc_ui_skb_cb(skb), sizeof(*uaddr));
|
||||
msg->msg_namelen = sizeof(*uaddr);
|
||||
if (!skb->list) {
|
||||
if (!skb->next) {
|
||||
dgram_free:
|
||||
kfree_skb(skb);
|
||||
}
|
||||
|
@@ -71,7 +71,11 @@ int llc_conn_state_process(struct sock *sk, struct sk_buff *skb)
|
||||
|
||||
if (!ev->ind_prim && !ev->cfm_prim) {
|
||||
/* indicate or confirm not required */
|
||||
if (!skb->list)
|
||||
/* XXX this is not very pretty, perhaps we should store
|
||||
* XXX indicate/confirm-needed state in the llc_conn_state_ev
|
||||
* XXX control block of the SKB instead? -DaveM
|
||||
*/
|
||||
if (!skb->next)
|
||||
goto out_kfree_skb;
|
||||
goto out_skb_put;
|
||||
}
|
||||
|
Reference in New Issue
Block a user