Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F136295834
D29365.id86114.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D29365.id86114.diff
View Options
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
@@ -88,17 +88,6 @@
return (dev->if_softc);
}
-static inline struct net_device *
-netdev_notifier_info_to_dev(void *ifp)
-{
- return (ifp);
-}
-
-int register_netdevice_notifier(struct notifier_block *);
-int register_inetaddr_notifier(struct notifier_block *);
-int unregister_netdevice_notifier(struct notifier_block *);
-int unregister_inetaddr_notifier(struct notifier_block *);
-
#define rtnl_lock()
#define rtnl_unlock()
@@ -140,4 +129,20 @@
return -if_addmulti(dev, (struct sockaddr *)&sdl, NULL);
}
+/* According to linux::ipoib_main.c. */
+struct netdev_notifier_info {
+ struct net_device *dev;
+};
+
+static inline struct net_device *
+netdev_notifier_info_to_dev(struct netdev_notifier_info *ni)
+{
+ return (ni->dev);
+}
+
+int register_netdevice_notifier(struct notifier_block *);
+int register_inetaddr_notifier(struct notifier_block *);
+int unregister_netdevice_notifier(struct notifier_block *);
+int unregister_inetaddr_notifier(struct notifier_block *);
+
#endif /* _LINUX_NETDEVICE_H_ */
Index: sys/compat/linuxkpi/common/src/linux_compat.c
===================================================================
--- sys/compat/linuxkpi/common/src/linux_compat.c
+++ sys/compat/linuxkpi/common/src/linux_compat.c
@@ -2249,48 +2249,58 @@
linux_handle_ifnet_link_event(void *arg, struct ifnet *ifp, int linkstate)
{
struct notifier_block *nb;
+ struct netdev_notifier_info ni;
nb = arg;
+ ni.dev = (struct net_device *)ifp;
if (linkstate == LINK_STATE_UP)
- nb->notifier_call(nb, NETDEV_UP, ifp);
+ nb->notifier_call(nb, NETDEV_UP, &ni);
else
- nb->notifier_call(nb, NETDEV_DOWN, ifp);
+ nb->notifier_call(nb, NETDEV_DOWN, &ni);
}
static void
linux_handle_ifnet_arrival_event(void *arg, struct ifnet *ifp)
{
struct notifier_block *nb;
+ struct netdev_notifier_info ni;
nb = arg;
- nb->notifier_call(nb, NETDEV_REGISTER, ifp);
+ ni.dev = (struct net_device *)ifp;
+ nb->notifier_call(nb, NETDEV_REGISTER, &ni);
}
static void
linux_handle_ifnet_departure_event(void *arg, struct ifnet *ifp)
{
struct notifier_block *nb;
+ struct netdev_notifier_info ni;
nb = arg;
- nb->notifier_call(nb, NETDEV_UNREGISTER, ifp);
+ ni.dev = (struct net_device *)ifp;
+ nb->notifier_call(nb, NETDEV_UNREGISTER, &ni);
}
static void
linux_handle_iflladdr_event(void *arg, struct ifnet *ifp)
{
struct notifier_block *nb;
+ struct netdev_notifier_info ni;
nb = arg;
- nb->notifier_call(nb, NETDEV_CHANGEADDR, ifp);
+ ni.dev = (struct net_device *)ifp;
+ nb->notifier_call(nb, NETDEV_CHANGEADDR, &ni);
}
static void
linux_handle_ifaddr_event(void *arg, struct ifnet *ifp)
{
struct notifier_block *nb;
+ struct netdev_notifier_info ni;
nb = arg;
- nb->notifier_call(nb, NETDEV_CHANGEIFADDR, ifp);
+ ni.dev = (struct net_device *)ifp;
+ nb->notifier_call(nb, NETDEV_CHANGEIFADDR, &ni);
}
int
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Nov 18, 2:09 AM (12 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25470879
Default Alt Text
D29365.id86114.diff (3 KB)
Attached To
Mode
D29365: LinuxKPI: netdevice notifier callback argument
Attached
Detach File
Event Timeline
Log In to Comment