]> www.infradead.org Git - users/willy/pagecache.git/commit
geneve: Suppress list corruption splat in geneve_destroy_tunnels().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Mon, 17 Feb 2025 20:37:05 +0000 (12:37 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 20 Feb 2025 02:49:29 +0000 (18:49 -0800)
commit62fab6eef61f245dc8797e3a6a5b890ef40e8628
treea4e9a1601889f108d02657e720dcfa743b14e139
parent4ccacf86491d33d2486b62d4d44864d7101b299d
geneve: Suppress list corruption splat in geneve_destroy_tunnels().

As explained in the previous patch, iterating for_each_netdev() and
gn->geneve_list during ->exit_batch_rtnl() could trigger ->dellink()
twice for the same device.

If CONFIG_DEBUG_LIST is enabled, we will see a list_del() corruption
splat in the 2nd call of geneve_dellink().

Let's remove for_each_netdev() in geneve_destroy_tunnels() and delegate
that part to default_device_exit_batch().

Fixes: 9593172d93b9 ("geneve: Fix use-after-free in geneve_find_dev().")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20250217203705.40342-3-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/geneve.c