mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
[SOCK]: Introduce sk_receive_skb
Its common enough to to justify that, TCP still can't use it as it has the prequeueing stuff, still to be made generic in the not so distant future :-) Signed-off-by: Arnaldo Carvalho de Melo <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
ce1d4d3e88
commit
25995ff577
5 changed files with 29 additions and 73 deletions
|
|
@ -383,8 +383,6 @@ static int pppoe_rcv(struct sk_buff *skb,
|
|||
{
|
||||
struct pppoe_hdr *ph;
|
||||
struct pppox_sock *po;
|
||||
struct sock *sk;
|
||||
int ret;
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
|
||||
goto drop;
|
||||
|
|
@ -395,24 +393,8 @@ static int pppoe_rcv(struct sk_buff *skb,
|
|||
ph = (struct pppoe_hdr *) skb->nh.raw;
|
||||
|
||||
po = get_item((unsigned long) ph->sid, eth_hdr(skb)->h_source);
|
||||
if (!po)
|
||||
goto drop;
|
||||
|
||||
sk = sk_pppox(po);
|
||||
bh_lock_sock(sk);
|
||||
|
||||
/* Socket state is unknown, must put skb into backlog. */
|
||||
if (sock_owned_by_user(sk) != 0) {
|
||||
sk_add_backlog(sk, skb);
|
||||
ret = NET_RX_SUCCESS;
|
||||
} else {
|
||||
ret = pppoe_rcv_core(sk, skb);
|
||||
}
|
||||
|
||||
bh_unlock_sock(sk);
|
||||
sock_put(sk);
|
||||
|
||||
return ret;
|
||||
if (po != NULL)
|
||||
return sk_receive_skb(sk_pppox(po), skb);
|
||||
drop:
|
||||
kfree_skb(skb);
|
||||
out:
|
||||
|
|
|
|||
Loading…
Reference in a new issue