ipmr.c (457c4cbc5a3dde259d2a1f15d5f9785290397267) | ipmr.c (e9dc86534051b78e41e5b746cccc291b57a3a311) |
---|---|
1/* 2 * IP multicast routing support for mrouted 3.6/3.8 3 * 4 * (c) 1995 Alan Cox, <alan@redhat.com> 5 * Linux Consultancy and Custom Driver Development 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License --- 1069 unchanged lines hidden (view full) --- 1078 default: 1079 return -ENOIOCTLCMD; 1080 } 1081} 1082 1083 1084static int ipmr_device_event(struct notifier_block *this, unsigned long event, void *ptr) 1085{ | 1/* 2 * IP multicast routing support for mrouted 3.6/3.8 3 * 4 * (c) 1995 Alan Cox, <alan@redhat.com> 5 * Linux Consultancy and Custom Driver Development 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License --- 1069 unchanged lines hidden (view full) --- 1078 default: 1079 return -ENOIOCTLCMD; 1080 } 1081} 1082 1083 1084static int ipmr_device_event(struct notifier_block *this, unsigned long event, void *ptr) 1085{ |
1086 struct net_device *dev = ptr; |
|
1086 struct vif_device *v; 1087 int ct; | 1087 struct vif_device *v; 1088 int ct; |
1089 1090 if (dev->nd_net != &init_net) 1091 return NOTIFY_DONE; 1092 |
|
1088 if (event != NETDEV_UNREGISTER) 1089 return NOTIFY_DONE; 1090 v=&vif_table[0]; 1091 for (ct=0;ct<maxvif;ct++,v++) { | 1093 if (event != NETDEV_UNREGISTER) 1094 return NOTIFY_DONE; 1095 v=&vif_table[0]; 1096 for (ct=0;ct<maxvif;ct++,v++) { |
1092 if (v->dev==ptr) | 1097 if (v->dev==dev) |
1093 vif_delete(ct); 1094 } 1095 return NOTIFY_DONE; 1096} 1097 1098 1099static struct notifier_block ip_mr_notifier={ 1100 .notifier_call = ipmr_device_event, --- 829 unchanged lines hidden --- | 1098 vif_delete(ct); 1099 } 1100 return NOTIFY_DONE; 1101} 1102 1103 1104static struct notifier_block ip_mr_notifier={ 1105 .notifier_call = ipmr_device_event, --- 829 unchanged lines hidden --- |