diff options
author | Bjoern A. Zeeb <bz@FreeBSD.org> | 2021-03-26 17:52:24 +0000 |
---|---|---|
committer | Bjoern A. Zeeb <bz@FreeBSD.org> | 2021-03-30 14:40:46 +0000 |
commit | 7069b4c6a4e516e1435d8beb7a436d88193156d3 (patch) | |
tree | 1413b3062ac8d3b3c33900f9c5a3f180f3c230e3 /sys/compat/linuxkpi/common/include/linux/inetdevice.h | |
parent | 7446b0888d920124516284eaa32714d63353e2c9 (diff) | |
download | src-7069b4c6a4e516e1435d8beb7a436d88193156d3.tar.gz src-7069b4c6a4e516e1435d8beb7a436d88193156d3.zip |
LinuxKPI/OFED: (re)move inetdevice.h implementation
The two functions in linux/inetdevice.h are highly FreeBSD/ifnet
specific. This is a result of struct net_device being mapped to
struct ifnet.
The only known consumer of these functions are two files in the
ofed/infiniband code.
As a first step of cleaning up copy linux/inetdevice.h to
rdma/ib_addr_freebsd.h. (It stayed a separate file to preserve
copyright and license of the original file; otherwise it could be
merged into ib_addr.h where more EPOCH/vnet/.. are already used).
Slightly rename the function to not conflict with LinuxKPI
in the future.
Remove the three last, now unneeded includes of inetdevice.h and
zap linux/inetdevice.h to an empty header file with only the forward
include to netdevice.h remaining.
Sponsored-by: The FreeBSD Foundation
MFC-after: 2 weeks
Reviewed-by: hselasky, kib
X-D-R: D29366 (extracted as further cleanup)
Differential Revision: https://reviews.freebsd.org/D29434
Diffstat (limited to 'sys/compat/linuxkpi/common/include/linux/inetdevice.h')
-rw-r--r-- | sys/compat/linuxkpi/common/include/linux/inetdevice.h | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/inetdevice.h b/sys/compat/linuxkpi/common/include/linux/inetdevice.h index 87c880392b71..41852e8fed81 100644 --- a/sys/compat/linuxkpi/common/include/linux/inetdevice.h +++ b/sys/compat/linuxkpi/common/include/linux/inetdevice.h @@ -1,93 +1,6 @@ -/*- - * Copyright (c) 2010 Isilon Systems, Inc. - * Copyright (c) 2010 iX Systems, Inc. - * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013-2017 Mellanox Technologies, Ltd. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice unmodified, this list of conditions, and the following - * disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ #ifndef _LINUX_INETDEVICE_H_ #define _LINUX_INETDEVICE_H_ #include <linux/netdevice.h> -static inline struct net_device * -ip_dev_find(struct vnet *vnet, uint32_t addr) -{ - struct sockaddr_in sin; - struct epoch_tracker et; - struct ifaddr *ifa; - struct ifnet *ifp; - - memset(&sin, 0, sizeof(sin)); - sin.sin_addr.s_addr = addr; - sin.sin_len = sizeof(sin); - sin.sin_family = AF_INET; - NET_EPOCH_ENTER(et); - CURVNET_SET_QUIET(vnet); - ifa = ifa_ifwithaddr((struct sockaddr *)&sin); - CURVNET_RESTORE(); - if (ifa) { - ifp = ifa->ifa_ifp; - if_ref(ifp); - } else { - ifp = NULL; - } - NET_EPOCH_EXIT(et); - return (ifp); -} - -static inline struct net_device * -ip6_dev_find(struct vnet *vnet, struct in6_addr addr, uint16_t scope_id) -{ - struct sockaddr_in6 sin6; - struct epoch_tracker et; - struct ifaddr *ifa; - struct ifnet *ifp; - - memset(&sin6, 0, sizeof(sin6)); - sin6.sin6_addr = addr; - sin6.sin6_len = sizeof(sin6); - sin6.sin6_family = AF_INET6; - if (IN6_IS_SCOPE_LINKLOCAL(&addr) || - IN6_IS_ADDR_MC_INTFACELOCAL(&addr)) { - /* embed the IPv6 scope ID */ - sin6.sin6_addr.s6_addr16[1] = htons(scope_id); - } - NET_EPOCH_ENTER(et); - CURVNET_SET_QUIET(vnet); - ifa = ifa_ifwithaddr((struct sockaddr *)&sin6); - CURVNET_RESTORE(); - if (ifa != NULL) { - ifp = ifa->ifa_ifp; - if_ref(ifp); - } else { - ifp = NULL; - } - NET_EPOCH_EXIT(et); - return (ifp); -} - #endif /* _LINUX_INETDEVICE_H_ */ |