[RFC net-next 4/6] net: geneve: remove unused geneve_dev_create_fb

From: Ilya Maximets

Date: Wed May 13 2026 - 14:50:06 EST


The only user was vport-geneve in openvswitch and now it is gone.

Note: since it's an exported symbol, there is a possibility that some
out-of-tree module is using it. So, alternative is to deprecate it
instead by adding a warning if it is ever called.

Signed-off-by: Ilya Maximets <i.maximets@xxxxxxx>
---
drivers/net/geneve.c | 48 --------------------------------------------
include/net/geneve.h | 5 -----
2 files changed, 53 deletions(-)

diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index b36fad8337245..153b15e4ef569 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -2364,54 +2364,6 @@ static struct rtnl_link_ops geneve_link_ops __read_mostly = {
.fill_info = geneve_fill_info,
};

-struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
- u8 name_assign_type, u16 dst_port)
-{
- struct nlattr *tb[IFLA_MAX + 1];
- struct net_device *dev;
- LIST_HEAD(list_kill);
- int err;
- struct geneve_config cfg = {
- .df = GENEVE_DF_UNSET,
- .use_udp6_rx_checksums = true,
- .ttl_inherit = false,
- .collect_md = true,
- .port_min = 1,
- .port_max = USHRT_MAX,
- };
-
- memset(tb, 0, sizeof(tb));
- dev = rtnl_create_link(net, name, name_assign_type,
- &geneve_link_ops, tb, NULL);
- if (IS_ERR(dev))
- return dev;
-
- init_tnl_info(&cfg.info, dst_port);
- err = geneve_configure(net, dev, NULL, &cfg);
- if (err) {
- free_netdev(dev);
- return ERR_PTR(err);
- }
-
- /* openvswitch users expect packet sizes to be unrestricted,
- * so set the largest MTU we can.
- */
- err = geneve_change_mtu(dev, IP_MAX_MTU);
- if (err)
- goto err;
-
- err = rtnl_configure_link(dev, NULL, 0, NULL);
- if (err < 0)
- goto err;
-
- return dev;
-err:
- geneve_dellink(dev, &list_kill);
- unregister_netdevice_many(&list_kill);
- return ERR_PTR(err);
-}
-EXPORT_SYMBOL_GPL(geneve_dev_create_fb);
-
static int geneve_netdevice_event(struct notifier_block *unused,
unsigned long event, void *ptr)
{
diff --git a/include/net/geneve.h b/include/net/geneve.h
index 5c96827a487e7..ba2c14d61e904 100644
--- a/include/net/geneve.h
+++ b/include/net/geneve.h
@@ -68,9 +68,4 @@ static inline bool netif_is_geneve(const struct net_device *dev)
!strcmp(dev->rtnl_link_ops->kind, "geneve");
}

-#ifdef CONFIG_INET
-struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
- u8 name_assign_type, u16 dst_port);
-#endif /*ifdef CONFIG_INET */
-
#endif /*ifdef__NET_GENEVE_H */
--
2.53.0