diff options
| author | David S. Miller <davem@davemloft.net> | 2017-04-28 15:48:16 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2017-04-28 15:48:16 -0400 |
| commit | 4c042a80c1776477d8f13d0b214809a2eaedf01d (patch) | |
| tree | f36c473e0e53ef2018334abd8cffcf42b4dd70b6 /kernel | |
| parent | cd5487fb9485934dfa0ad9d6b52c4da8e38318e6 (diff) | |
| parent | f3515b5d0b718cceae9e67802cfa20d5e6f9b567 (diff) | |
| download | cachepc-linux-4c042a80c1776477d8f13d0b214809a2eaedf01d.tar.gz cachepc-linux-4c042a80c1776477d8f13d0b214809a2eaedf01d.zip | |
Merge branch 'bpf-misc-next'
Daniel Borkmann says:
====================
Misc BPF updates
This set cleans up ldimm64 leftovers from early eBPF days and
adds couple of test cases related to this to the verifier test
suite. It also cleans up the kallsyms spinlock (had same patch
also in queue) by relaxing it through switching to _bh variant.
It fixes up test_progs in relation to htons/ntohs and adds
accessor macros for the percpu tests in test_maps.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/bpf/core.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index b4f1cb0c5ac7..6f81e0f5a0fa 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -394,27 +394,23 @@ static bool bpf_prog_kallsyms_verify_off(const struct bpf_prog *fp) void bpf_prog_kallsyms_add(struct bpf_prog *fp) { - unsigned long flags; - if (!bpf_prog_kallsyms_candidate(fp) || !capable(CAP_SYS_ADMIN)) return; - spin_lock_irqsave(&bpf_lock, flags); + spin_lock_bh(&bpf_lock); bpf_prog_ksym_node_add(fp->aux); - spin_unlock_irqrestore(&bpf_lock, flags); + spin_unlock_bh(&bpf_lock); } void bpf_prog_kallsyms_del(struct bpf_prog *fp) { - unsigned long flags; - if (!bpf_prog_kallsyms_candidate(fp)) return; - spin_lock_irqsave(&bpf_lock, flags); + spin_lock_bh(&bpf_lock); bpf_prog_ksym_node_del(fp->aux); - spin_unlock_irqrestore(&bpf_lock, flags); + spin_unlock_bh(&bpf_lock); } static struct bpf_prog *bpf_prog_kallsyms_find(unsigned long addr) |
