1. 13 Mar, 2015 38 commits
  2. 12 Mar, 2015 2 commits
    • Daniel Borkmann's avatar
      cls_bpf: do eBPF invocation under non-bh RCU lock variant for maps · 54720df1
      Daniel Borkmann authored
      Currently, it is possible in cls_bpf to access eBPF maps only under
      rcu_read_lock_bh() variants: while on ingress side, that is, handle_ing(),
      the classifier would be called from __netif_receive_skb_core() under
      rcu_read_lock(); on egress side, however, it's rcu_read_lock_bh() via
      __dev_queue_xmit().
      
      This rcu/rcu_bh mix doesn't work together with eBPF maps as they require
      soley to be called under rcu_read_lock(). eBPF maps could also be shared
      among various other eBPF programs (possibly even with other eBPF program
      types, f.e. tracing) and user space processes, so any context is assumed.
      
      Therefore, a possible fix for cls_bpf is to wrap/nest eBPF program
      invocation under non-bh RCU lock variant.
      
      Fixes: e2e9b654 ("cls_bpf: add initial eBPF support for programmable classifiers")
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54720df1
    • David S. Miller's avatar
      Merge branch 'fib_trie_table_merge_fixes' · 06741d05
      David S. Miller authored
      Alexander Duyck says:
      
      ====================
      fib_trie: Minor fixes for table merge
      
      This patch set addresses two issues reported with the tables merged, the
      first is a NULL pointer dereference, and the other is to remove a WARN_ON
      and set the ordering for aliases from different tables with the same slen
      values.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      06741d05