From: Pavel Roskin Date: Fri, 8 Nov 2013 21:42:54 +0000 (-0500) Subject: Use netdev_notifier_info_to_dev(), needed for Linux 3.11+ X-Git-Url: http://git.ozo.com/?p=madwifi%2F.git;a=commitdiff_plain;h=f83c3d758e024e717c77c03b6f2f8ceccff0f004 Use netdev_notifier_info_to_dev(), needed for Linux 3.11+ Not using netdev_notifier_info_to_dev() gives no compile warnings but crashes the kernel, so this patch is intentionally applied before Linux 3.10 procfs support is enabled to avoid a revision that compiles and crashes on new kernels. --- diff --git a/ath/if_ath.c b/ath/if_ath.c index a0d7eb8..1c87bba 100644 --- a/ath/if_ath.c +++ b/ath/if_ath.c @@ -12359,7 +12359,7 @@ static int ath_rcv_dev_event(struct notifier_block *this, unsigned long event, void *ptr) { - struct net_device *dev = (struct net_device *)ptr; + struct net_device *dev = netdev_notifier_info_to_dev(ptr); struct ath_softc *sc = (struct ath_softc *)netdev_priv(dev); #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) diff --git a/include/compat.h b/include/compat.h index c29f57a..700229b 100644 --- a/include/compat.h +++ b/include/compat.h @@ -242,6 +242,10 @@ typedef unsigned long resource_size_t; #endif #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) +#define netdev_notifier_info_to_dev(ptr) ((struct net_device *)(ptr)) +#endif + #endif /* __KERNEL__ */ #endif /* _ATH_COMPAT_H_ */ diff --git a/net80211/ieee80211_linux.c b/net80211/ieee80211_linux.c index c954aeb..a97bedb 100644 --- a/net80211/ieee80211_linux.c +++ b/net80211/ieee80211_linux.c @@ -1186,7 +1186,7 @@ static int ieee80211_rcv_dev_event(struct notifier_block *this, unsigned long event, void *ptr) { - struct net_device *dev = (struct net_device *)ptr; + struct net_device *dev = netdev_notifier_info_to_dev(ptr); #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) if (!dev || dev->open != &ieee80211_open)