From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH v2 2/3] net/ipv4/udp_tunnel: prefer SO_BINDTOIFINDEX over SO_BINDTODEVICE Date: Tue, 15 Jan 2019 14:42:15 +0100 Message-ID: <20190115134216.1757-2-dh.herrmann@gmail.com> References: <20190115134216.1757-1-dh.herrmann@gmail.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: davem@davemloft.net, David Ahern , Roopa Prabhu , David Herrmann , Tom Gundersen To: netdev@vger.kernel.org Return-path: Received: from mail-wr1-f68.google.com ([209.85.221.68]:46979 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729370AbfAONnG (ORCPT ); Tue, 15 Jan 2019 08:43:06 -0500 Received: by mail-wr1-f68.google.com with SMTP id l9so2950853wrt.13 for ; Tue, 15 Jan 2019 05:43:04 -0800 (PST) In-Reply-To: <20190115134216.1757-1-dh.herrmann@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: 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 Signed-off-by: David Herrmann --- v2: - Rename to SO_BINDTOIFINDEX from SO_BINDTOIF net/ipv4/udp_tunnel.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/net/ipv4/udp_tunnel.c b/net/ipv4/udp_tunnel.c index be8b5b2157d8..e93cc0379201 100644 --- a/net/ipv4/udp_tunnel.c +++ b/net/ipv4/udp_tunnel.c @@ -21,18 +21,9 @@ int udp_sock_create4(struct net *net, struct udp_port_cfg *cfg, goto error; if (cfg->bind_ifindex) { - struct net_device *dev; - - dev = dev_get_by_index(net, cfg->bind_ifindex); - if (!dev) { - err = -ENODEV; - goto error; - } - - err = kernel_setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, - dev->name, strlen(dev->name) + 1); - dev_put(dev); - + err = kernel_setsockopt(sock, SOL_SOCKET, SO_BINDTOIFINDEX, + (void *)&cfg->bind_ifindex, + sizeof(cfg->bind_ifindex)); if (err < 0) goto error; } -- 2.20.1