aboutsummaryrefslogtreecommitdiff
path: root/kernel/bpf/offload.c
diff options
context:
space:
mode:
authorGravatar Jakub Kicinski <jakub.kicinski@netronome.com> 2017-11-20 15:21:57 -0800
committerGravatar Daniel Borkmann <daniel@iogearbox.net> 2017-11-21 00:37:35 +0100
commit62c71b45e8537b8cb746cc929ea05ba0258e0b5a (patch)
treecca84486ed590c654185fdd88b548e636b9e84e5 /kernel/bpf/offload.c
parentbpf: turn bpf_prog_get_type() into a wrapper (diff)
downloadlinux-62c71b45e8537b8cb746cc929ea05ba0258e0b5a.tar.gz
linux-62c71b45e8537b8cb746cc929ea05ba0258e0b5a.tar.bz2
linux-62c71b45e8537b8cb746cc929ea05ba0258e0b5a.zip
bpf: offload: ignore namespace moves
We are currently destroying the device offload state when device moves to another net namespace. This doesn't break with current NFP code, because offload state is not used on program removal, but it's not correct behaviour. Ignore the device unregister notifications on namespace move. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'kernel/bpf/offload.c')
-rw-r--r--kernel/bpf/offload.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/bpf/offload.c b/kernel/bpf/offload.c
index a778e5df7e26..d4267c674fec 100644
--- a/kernel/bpf/offload.c
+++ b/kernel/bpf/offload.c
@@ -174,6 +174,10 @@ static int bpf_offload_notification(struct notifier_block *notifier,
switch (event) {
case NETDEV_UNREGISTER:
+ /* ignore namespace changes */
+ if (netdev->reg_state != NETREG_UNREGISTERING)
+ break;
+
list_for_each_entry_safe(offload, tmp, &bpf_prog_offload_devs,
offloads) {
if (offload->netdev == netdev)