lkml.org 
[lkml]   [2012]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 09/16] netvm: Allow skb allocation to use PFMEMALLOC reserves
    On Fri, Jun 22, 2012 at 03:30:36PM +0100, Mel Gorman wrote:
    > diff --git a/net/core/sock.c b/net/core/sock.c
    > index 5c9ca2b..159dccc 100644
    > --- a/net/core/sock.c
    > +++ b/net/core/sock.c
    > @@ -271,6 +271,9 @@ __u32 sysctl_rmem_default __read_mostly = SK_RMEM_MAX;
    > int sysctl_optmem_max __read_mostly = sizeof(unsigned long)*(2*UIO_MAXIOV+512);
    > EXPORT_SYMBOL(sysctl_optmem_max);
    >
    > +struct static_key memalloc_socks = STATIC_KEY_INIT_FALSE;
    > +EXPORT_SYMBOL_GPL(memalloc_socks);
    > +

    This is used via sk_memalloc_socks() by SLAB.

    From 3da9ab9972845974da114c5a6624335e6371b2d5 Mon Sep 17 00:00:00 2001
    From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Date: Tue, 26 Jun 2012 17:18:20 +0200
    Subject: [PATCH] export sk_memalloc_socks() only with CONFIG_NET

    |mm/built-in.o: In function `atomic_read':
    |include/asm/atomic.h:25: undefined reference to `memalloc_socks'
    |include/asm/atomic.h:25: undefined reference to `memalloc_socks'
    |include/asm/atomic.h:25: undefined reference to `memalloc_socks'
    |include/asm/atomic.h:25: undefined reference to `memalloc_socks'
    |include/asm/atomic.h:25: undefined reference to `memalloc_socks'
    |mm/built-in.o:include/asm/atomic.h:25: more undefined references to `memalloc_socks' follow

    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    ---
    include/net/sock.h | 9 +++++++++
    1 file changed, 9 insertions(+)

    diff --git a/include/net/sock.h b/include/net/sock.h
    index db0c20c..767c443 100644
    --- a/include/net/sock.h
    +++ b/include/net/sock.h
    @@ -659,11 +659,20 @@ static inline bool sock_flag(const struct sock *sk, enum sock_flags flag)
    return test_bit(flag, &sk->sk_flags);
    }

    +#ifdef CONFIG_NET
    extern struct static_key memalloc_socks;
    static inline int sk_memalloc_socks(void)
    {
    return static_key_false(&memalloc_socks);
    }
    +#else
    +
    +static inline int sk_memalloc_socks(void)
    +{
    + return 0;
    +}
    +
    +#endif

    static inline gfp_t sk_gfp_atomic(struct sock *sk, gfp_t gfp_mask)
    {
    --
    1.7.10
    Sebastian


    \
     
     \ /
      Last update: 2012-06-26 18:01    [W:4.076 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site