Skip to content

Commit 2eadee7

Browse files
David Herrmanndavem330
authored andcommitted
net/ipv4/udp_tunnel: prefer SO_BINDTOIFINDEX over SO_BINDTODEVICE
The udp-tunnel setup allows binding sockets to a network device. Prefer the new SO_BINDTOIFINDEX to avoid temporarily resolving the device-name just to look it up in the ioctl again. Reviewed-by: Tom Gundersen <[email protected]> Signed-off-by: David Herrmann <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent f5dd3d0 commit 2eadee7

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

net/ipv4/udp_tunnel.c

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,9 @@ int udp_sock_create4(struct net *net, struct udp_port_cfg *cfg,
2121
goto error;
2222

2323
if (cfg->bind_ifindex) {
24-
struct net_device *dev;
25-
26-
dev = dev_get_by_index(net, cfg->bind_ifindex);
27-
if (!dev) {
28-
err = -ENODEV;
29-
goto error;
30-
}
31-
32-
err = kernel_setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE,
33-
dev->name, strlen(dev->name) + 1);
34-
dev_put(dev);
35-
24+
err = kernel_setsockopt(sock, SOL_SOCKET, SO_BINDTOIFINDEX,
25+
(void *)&cfg->bind_ifindex,
26+
sizeof(cfg->bind_ifindex));
3627
if (err < 0)
3728
goto error;
3829
}

0 commit comments

Comments
 (0)