lkml.org 
[lkml]   [2020]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 378/477] bpf: Fix memlock accounting for sock_hash
    Date
    From: Andrey Ignatov <rdna@fb.com>

    [ Upstream commit 60e5ca8a64bad8f3e2e20a1e57846e497361c700 ]

    Add missed bpf_map_charge_init() in sock_hash_alloc() and
    correspondingly bpf_map_charge_finish() on ENOMEM.

    It was found accidentally while working on unrelated selftest that
    checks "map->memory.pages > 0" is true for all map types.

    Before:
    # bpftool m l
    ...
    3692: sockhash name m_sockhash flags 0x0
    key 4B value 4B max_entries 8 memlock 0B

    After:
    # bpftool m l
    ...
    84: sockmap name m_sockmap flags 0x0
    key 4B value 4B max_entries 8 memlock 4096B

    Fixes: 604326b41a6f ("bpf, sockmap: convert to generic sk_msg interface")
    Signed-off-by: Andrey Ignatov <rdna@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200612000857.2881453-1-rdna@fb.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/core/sock_map.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/net/core/sock_map.c b/net/core/sock_map.c
    index 7e858c1dd7113..591457fcbd028 100644
    --- a/net/core/sock_map.c
    +++ b/net/core/sock_map.c
    @@ -984,11 +984,15 @@ static struct bpf_map *sock_hash_alloc(union bpf_attr *attr)
    err = -EINVAL;
    goto free_htab;
    }
    + err = bpf_map_charge_init(&htab->map.memory, cost);
    + if (err)
    + goto free_htab;

    htab->buckets = bpf_map_area_alloc(htab->buckets_num *
    sizeof(struct bpf_htab_bucket),
    htab->map.numa_node);
    if (!htab->buckets) {
    + bpf_map_charge_finish(&htab->map.memory);
    err = -ENOMEM;
    goto free_htab;
    }
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-06-23 22:17    [W:4.090 / U:0.440 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site