aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2017-11-20 18:21:57 -0500
committerDaniel Borkmann <daniel@iogearbox.net>2017-11-20 18:37:35 -0500
commit62c71b45e8537b8cb746cc929ea05ba0258e0b5a (patch)
treecca84486ed590c654185fdd88b548e636b9e84e5
parent479321e9c31a6c05426790b11888427400f75ac8 (diff)
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>
-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,
174 174
175 switch (event) { 175 switch (event) {
176 case NETDEV_UNREGISTER: 176 case NETDEV_UNREGISTER:
177 /* ignore namespace changes */
178 if (netdev->reg_state != NETREG_UNREGISTERING)
179 break;
180
177 list_for_each_entry_safe(offload, tmp, &bpf_prog_offload_devs, 181 list_for_each_entry_safe(offload, tmp, &bpf_prog_offload_devs,
178 offloads) { 182 offloads) {
179 if (offload->netdev == netdev) 183 if (offload->netdev == netdev)