Page MenuHomeFreeBSD

D29366.diff
No OneTemporary

D29366.diff

Index: sys/compat/linuxkpi/common/include/linux/netdevice.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/netdevice.h
+++ sys/compat/linuxkpi/common/include/linux/netdevice.h
@@ -55,23 +55,9 @@
#define MAX_ADDR_LEN 20
+#if defined(_NET_DEVICE_IS_IFNET)
#define net_device ifnet
-static inline struct ifnet *
-dev_get_by_index(struct vnet *vnet, int if_index)
-{
- struct epoch_tracker et;
- struct ifnet *retval;
-
- NET_EPOCH_ENTER(et);
- CURVNET_SET(vnet);
- retval = ifnet_byindex_ref(if_index);
- CURVNET_RESTORE();
- NET_EPOCH_EXIT(et);
-
- return (retval);
-}
-
#define dev_hold(d) if_ref(d)
#define dev_put(d) if_rele(d)
#define dev_net(d) ((d)->if_vnet)
@@ -79,55 +65,23 @@
#define net_eq(a,b) ((a) == (b))
#define netif_running(dev) !!((dev)->if_drv_flags & IFF_DRV_RUNNING)
-#define netif_oper_up(dev) !!((dev)->if_flags & IFF_UP)
#define netif_carrier_ok(dev) ((dev)->if_link_state == LINK_STATE_UP)
-static inline void *
-netdev_priv(const struct net_device *dev)
-{
- return (dev->if_softc);
-}
-
-#define rtnl_lock()
-#define rtnl_unlock()
-
-static inline int
-dev_mc_delete(struct net_device *dev, void *addr, int alen, int all)
-{
- struct sockaddr_dl sdl;
+#else /* !_NET_DEVICE_IS_IFNET */
- if (alen > sizeof(sdl.sdl_data))
- return (-EINVAL);
- memset(&sdl, 0, sizeof(sdl));
- sdl.sdl_len = sizeof(sdl);
- sdl.sdl_family = AF_LINK;
- sdl.sdl_alen = alen;
- memcpy(&sdl.sdl_data, addr, alen);
+struct net_device {
+ /*
+ * Keep ifp first until _NET_DEVICE_IS_IFNET is gone
+ * for various compat bits, e.g., netdev_notifier_info.
+ */
+ struct ifnet *ifp;
- return -if_delmulti(dev, (struct sockaddr *)&sdl);
-}
-
-static inline int
-dev_mc_del(struct net_device *dev, void *addr)
-{
- return (dev_mc_delete(dev, addr, 6, 0));
-}
-
-static inline int
-dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly)
-{
- struct sockaddr_dl sdl;
-
- if (alen > sizeof(sdl.sdl_data))
- return (-EINVAL);
- memset(&sdl, 0, sizeof(sdl));
- sdl.sdl_len = sizeof(sdl);
- sdl.sdl_family = AF_LINK;
- sdl.sdl_alen = alen;
- memcpy(&sdl.sdl_data, addr, alen);
+ char *name;
+};
+#endif /* _NET_DEVICE_IS_IFNET */
- return -if_addmulti(dev, (struct sockaddr *)&sdl, NULL);
-}
+#define rtnl_lock() do { } while(0)
+#define rtnl_unlock() do { } while(0)
/* According to linux::ipoib_main.c. */
struct netdev_notifier_info {
Index: sys/dev/mlx4/mlx4_core/mlx4_main.c
===================================================================
--- sys/dev/mlx4/mlx4_core/mlx4_main.c
+++ sys/dev/mlx4/mlx4_core/mlx4_main.c
@@ -43,6 +43,7 @@
#include <linux/slab.h>
#include <linux/io-mapping.h>
#include <linux/delay.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/string.h>
#include <linux/fs.h>
Index: sys/dev/mlx4/mlx4_en/en.h
===================================================================
--- sys/dev/mlx4/mlx4_en/en.h
+++ sys/dev/mlx4/mlx4_en/en.h
@@ -39,6 +39,7 @@
#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/kobject.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/if_vlan.h>
#include <linux/if_ether.h>
@@ -654,6 +655,12 @@
u64 reg_id;
};
+static inline void *
+netdev_priv(const struct net_device *dev)
+{
+ return (dev->if_softc);
+}
+
static inline struct mlx4_cqe *mlx4_en_get_cqe(u8 *buf, int idx, int cqe_sz)
{
return (struct mlx4_cqe *)(buf + idx * cqe_sz);
Index: sys/dev/mlx4/mlx4_en/mlx4_en_main.c
===================================================================
--- sys/dev/mlx4/mlx4_en/mlx4_en_main.c
+++ sys/dev/mlx4/mlx4_en/mlx4_en_main.c
@@ -35,6 +35,7 @@
#include <linux/module.h>
#include <linux/delay.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/slab.h>
Index: sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
===================================================================
--- sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
+++ sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
@@ -37,6 +37,7 @@
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/if_vlan.h>
#include <linux/fs.h>
Index: sys/dev/mlx4/mlx4_ib/mlx4_ib_qp.c
===================================================================
--- sys/dev/mlx4/mlx4_ib/mlx4_ib_qp.c
+++ sys/dev/mlx4/mlx4_ib/mlx4_ib_qp.c
@@ -33,6 +33,7 @@
#include <linux/log2.h>
#include <linux/slab.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/bitops.h>
#include <linux/rcupdate.h>
Index: sys/ofed/drivers/infiniband/core/ib_addr.c
===================================================================
--- sys/ofed/drivers/infiniband/core/ib_addr.c
+++ sys/ofed/drivers/infiniband/core/ib_addr.c
@@ -46,7 +46,6 @@
#include <net/route/nhop.h>
#include <net/netevent.h>
#include <rdma/ib_addr.h>
-#include <rdma/ib_addr_freebsd.h>
#include <rdma/ib.h>
#include <netinet/in_fib.h>
Index: sys/ofed/drivers/infiniband/core/ib_cache.c
===================================================================
--- sys/ofed/drivers/infiniband/core/ib_cache.c
+++ sys/ofed/drivers/infiniband/core/ib_cache.c
@@ -42,6 +42,7 @@
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/in6.h>
Index: sys/ofed/drivers/infiniband/core/ib_cma.c
===================================================================
--- sys/ofed/drivers/infiniband/core/ib_cma.c
+++ sys/ofed/drivers/infiniband/core/ib_cma.c
@@ -65,7 +65,6 @@
#include <rdma/rdma_sdp.h>
#include <rdma/ib.h>
#include <rdma/ib_addr.h>
-#include <rdma/ib_addr_freebsd.h>
#include <rdma/ib_cache.h>
#include <rdma/ib_cm.h>
#include <rdma/ib_sa.h>
Index: sys/ofed/drivers/infiniband/core/ib_device.c
===================================================================
--- sys/ofed/drivers/infiniband/core/ib_device.c
+++ sys/ofed/drivers/infiniband/core/ib_device.c
@@ -42,6 +42,7 @@
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/mutex.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <rdma/ib_addr.h>
#include <rdma/ib_cache.h>
Index: sys/ofed/drivers/infiniband/core/ib_sysfs.c
===================================================================
--- sys/ofed/drivers/infiniband/core/ib_sysfs.c
+++ sys/ofed/drivers/infiniband/core/ib_sysfs.c
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/string.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/fs.h>
#include <linux/printk.h>
Index: sys/ofed/drivers/infiniband/core/iwpm_util.h
===================================================================
--- sys/ofed/drivers/infiniband/core/iwpm_util.h
+++ sys/ofed/drivers/infiniband/core/iwpm_util.h
@@ -44,6 +44,7 @@
#include <linux/in6.h>
#include <linux/spinlock.h>
#include <linux/kernel.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/delay.h>
#include <linux/workqueue.h>
Index: sys/ofed/include/rdma/ib_addr.h
===================================================================
--- sys/ofed/include/rdma/ib_addr.h
+++ sys/ofed/include/rdma/ib_addr.h
@@ -41,6 +41,7 @@
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/if_arp.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <linux/socket.h>
#include <linux/if_vlan.h>
@@ -49,7 +50,7 @@
#include <net/ip.h>
#include <rdma/ib_verbs.h>
#include <rdma/ib_pack.h>
-#include <net/ipv6.h>
+#include <rdma/ib_addr_freebsd.h>
struct rdma_addr_client {
atomic_t refcount;
Index: sys/ofed/include/rdma/ib_addr_freebsd.h
===================================================================
--- sys/ofed/include/rdma/ib_addr_freebsd.h
+++ sys/ofed/include/rdma/ib_addr_freebsd.h
@@ -92,4 +92,19 @@
}
#endif
+static inline struct ifnet *
+dev_get_by_index(struct vnet *vnet, int if_index)
+{
+ struct epoch_tracker et;
+ struct ifnet *retval;
+
+ NET_EPOCH_ENTER(et);
+ CURVNET_SET(vnet);
+ retval = ifnet_byindex_ref(if_index);
+ CURVNET_RESTORE();
+ NET_EPOCH_EXIT(et);
+
+ return (retval);
+}
+
#endif /* _RDMA_IB_ADDR_FREEBSD_H */
Index: sys/ofed/include/rdma/ib_sa.h
===================================================================
--- sys/ofed/include/rdma/ib_sa.h
+++ sys/ofed/include/rdma/ib_sa.h
@@ -41,8 +41,10 @@
#include <linux/completion.h>
#include <linux/compiler.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
+#include <rdma/ib_addr_freebsd.h>
#include <rdma/ib_verbs.h>
#include <rdma/ib_mad.h>
Index: sys/ofed/include/rdma/ib_verbs.h
===================================================================
--- sys/ofed/include/rdma/ib_verbs.h
+++ sys/ofed/include/rdma/ib_verbs.h
@@ -59,6 +59,7 @@
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/rcupdate.h>
+#define _NET_DEVICE_IS_IFNET
#include <linux/netdevice.h>
#include <netinet/ip.h>

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 1, 7:24 PM (21 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13273857
Default Alt Text
D29366.diff (8 KB)

Event Timeline