summaryrefslogtreecommitdiffstats
path: root/package/kernel/trelay/src/trelay.c
diff options
context:
space:
mode:
authorAli MJ Al-Nasrawy <alimjalnasrawy@gmail.com>2019-09-25 17:47:11 +0300
committerHauke Mehrtens <hauke@hauke-m.de>2019-10-12 23:51:29 +0200
commit77cfc0739d30c1282f7de24d2ec086d244e34bb7 (patch)
treee96bc6e5d26f8a9a5a70f2891453175d1a98f8f6 /package/kernel/trelay/src/trelay.c
parentb30e481b6cf09a77f50bb7f07dbe73f58699262d (diff)
downloadopenwrt-77cfc0739d30c1282f7de24d2ec086d244e34bb7.tar.gz
openwrt-77cfc0739d30c1282f7de24d2ec086d244e34bb7.tar.bz2
openwrt-77cfc0739d30c1282f7de24d2ec086d244e34bb7.zip
trelay: handle netdevice events correctly
Since v3.11, netdevice notification data are of type "struct netdev_notifier_info". Handle it as such! This should fix a critical bug in which devices are unable get released because trelay does not release resources in response to UNREGISTER event spamming the log with something like: unregister_netdevice: waiting for eth0.1 to become free. Usage count = 1 Signed-off-by: Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com>
Diffstat (limited to 'package/kernel/trelay/src/trelay.c')
-rw-r--r--package/kernel/trelay/src/trelay.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/package/kernel/trelay/src/trelay.c b/package/kernel/trelay/src/trelay.c
index 581a5cfd2f..d09dc07246 100644
--- a/package/kernel/trelay/src/trelay.c
+++ b/package/kernel/trelay/src/trelay.c
@@ -86,7 +86,7 @@ static struct trelay *trelay_find(struct net_device *dev)
static int tr_device_event(struct notifier_block *unused, unsigned long event,
void *ptr)
{
- struct net_device *dev = ptr;
+ struct net_device *dev = netdev_notifier_info_to_dev(ptr);
struct trelay *tr;
if (event != NETDEV_UNREGISTER)