lkml.org 
[lkml]   [2007]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 12/29] net: wrap sk->sk_backlog_rcv()
    Wrap calling sk->sk_backlog_rcv() in a function. This will allow extending the
    generic sk_backlog_rcv behaviour.

    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    ---
    include/net/sock.h | 5 +++++
    net/core/sock.c | 4 ++--
    net/ipv4/tcp.c | 2 +-
    net/ipv4/tcp_timer.c | 2 +-
    4 files changed, 9 insertions(+), 4 deletions(-)

    Index: linux-2.6/include/net/sock.h
    ===================================================================
    --- linux-2.6.orig/include/net/sock.h
    +++ linux-2.6/include/net/sock.h
    @@ -485,6 +485,11 @@ static inline void sk_add_backlog(struct
    skb->next = NULL;
    }

    +static inline int sk_backlog_rcv(struct sock *sk, struct sk_buff *skb)
    +{
    + return sk->sk_backlog_rcv(sk, skb);
    +}
    +
    #define sk_wait_event(__sk, __timeo, __condition) \
    ({ int __rc; \
    release_sock(__sk); \
    Index: linux-2.6/net/core/sock.c
    ===================================================================
    --- linux-2.6.orig/net/core/sock.c
    +++ linux-2.6/net/core/sock.c
    @@ -320,7 +320,7 @@ int sk_receive_skb(struct sock *sk, stru
    */
    mutex_acquire(&sk->sk_lock.dep_map, 0, 1, _RET_IP_);

    - rc = sk->sk_backlog_rcv(sk, skb);
    + rc = sk_backlog_rcv(sk, skb);

    mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
    } else
    @@ -1312,7 +1312,7 @@ static void __release_sock(struct sock *
    struct sk_buff *next = skb->next;

    skb->next = NULL;
    - sk->sk_backlog_rcv(sk, skb);
    + sk_backlog_rcv(sk, skb);

    /*
    * We are in process context here with softirqs
    Index: linux-2.6/net/ipv4/tcp.c
    ===================================================================
    --- linux-2.6.orig/net/ipv4/tcp.c
    +++ linux-2.6/net/ipv4/tcp.c
    @@ -1134,7 +1134,7 @@ static void tcp_prequeue_process(struct
    * necessary */
    local_bh_disable();
    while ((skb = __skb_dequeue(&tp->ucopy.prequeue)) != NULL)
    - sk->sk_backlog_rcv(sk, skb);
    + sk_backlog_rcv(sk, skb);
    local_bh_enable();

    /* Clear memory counter. */
    Index: linux-2.6/net/ipv4/tcp_timer.c
    ===================================================================
    --- linux-2.6.orig/net/ipv4/tcp_timer.c
    +++ linux-2.6/net/ipv4/tcp_timer.c
    @@ -196,7 +196,7 @@ static void tcp_delack_timer(unsigned lo
    NET_INC_STATS_BH(LINUX_MIB_TCPSCHEDULERFAILED);

    while ((skb = __skb_dequeue(&tp->ucopy.prequeue)) != NULL)
    - sk->sk_backlog_rcv(sk, skb);
    + sk_backlog_rcv(sk, skb);

    tp->ucopy.memory = 0;
    }
    --



    \
     
     \ /
      Last update: 2007-12-14 20:39    [W:4.062 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site