diff options
author | Jiri Pirko <jiri@resnulli.us> | 2013-05-27 21:30:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-05-28 16:11:01 -0400 |
commit | 351638e7deeed2ec8ce451b53d33921b3da68f83 (patch) | |
tree | 175dfff289b5e3baecffbc7e97d1884e9a18345c /drivers/net | |
parent | b1098bbe1b24d5d90cff92fbd716d2ef4bed2cff (diff) |
net: pass info struct via netdevice notifier
So far, only net_device * could be passed along with netdevice notifier
event. This patch provides a possibility to pass custom structure
able to provide info that event listener needs to know.
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
v2->v3: fix typo on simeth
shortened dev_getter
shortened notifier_info struct name
v1->v2: fix notifier_call parameter in call_netdevice_notifier()
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 2 | ||||
-rw-r--r-- | drivers/net/can/led.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/cnic.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/marvell/skge.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/marvell/sky2.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/sfc/efx.c | 2 | ||||
-rw-r--r-- | drivers/net/hamradio/bpqether.c | 7 | ||||
-rw-r--r-- | drivers/net/macvlan.c | 2 | ||||
-rw-r--r-- | drivers/net/macvtap.c | 2 | ||||
-rw-r--r-- | drivers/net/netconsole.c | 5 | ||||
-rw-r--r-- | drivers/net/ppp/pppoe.c | 2 | ||||
-rw-r--r-- | drivers/net/team/team.c | 2 | ||||
-rw-r--r-- | drivers/net/wan/dlci.c | 2 | ||||
-rw-r--r-- | drivers/net/wan/hdlc.c | 2 | ||||
-rw-r--r-- | drivers/net/wan/lapbether.c | 2 |
17 files changed, 22 insertions, 22 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 29b846cbfb48..f4489d65bf33 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -3277,7 +3277,7 @@ static int bond_slave_netdev_event(unsigned long event, | |||
3277 | static int bond_netdev_event(struct notifier_block *this, | 3277 | static int bond_netdev_event(struct notifier_block *this, |
3278 | unsigned long event, void *ptr) | 3278 | unsigned long event, void *ptr) |
3279 | { | 3279 | { |
3280 | struct net_device *event_dev = (struct net_device *)ptr; | 3280 | struct net_device *event_dev = netdev_notifier_info_to_dev(ptr); |
3281 | 3281 | ||
3282 | pr_debug("event_dev: %s, event: %lx\n", | 3282 | pr_debug("event_dev: %s, event: %lx\n", |
3283 | event_dev ? event_dev->name : "None", | 3283 | event_dev ? event_dev->name : "None", |
diff --git a/drivers/net/can/led.c b/drivers/net/can/led.c index f27fca65dc4a..a3d99a8fd2d1 100644 --- a/drivers/net/can/led.c +++ b/drivers/net/can/led.c | |||
@@ -88,9 +88,9 @@ EXPORT_SYMBOL_GPL(devm_can_led_init); | |||
88 | 88 | ||
89 | /* NETDEV rename notifier to rename the associated led triggers too */ | 89 | /* NETDEV rename notifier to rename the associated led triggers too */ |
90 | static int can_led_notifier(struct notifier_block *nb, unsigned long msg, | 90 | static int can_led_notifier(struct notifier_block *nb, unsigned long msg, |
91 | void *data) | 91 | void *ptr) |
92 | { | 92 | { |
93 | struct net_device *netdev = data; | 93 | struct net_device *netdev = netdev_notifier_info_to_dev(ptr); |
94 | struct can_priv *priv = safe_candev_priv(netdev); | 94 | struct can_priv *priv = safe_candev_priv(netdev); |
95 | char name[CAN_LED_NAME_SZ]; | 95 | char name[CAN_LED_NAME_SZ]; |
96 | 96 | ||
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 6b0dc131b20e..d78d4cf140ed 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c | |||
@@ -5622,7 +5622,7 @@ static void cnic_rcv_netevent(struct cnic_local *cp, unsigned long event, | |||
5622 | static int cnic_netdev_event(struct notifier_block *this, unsigned long event, | 5622 | static int cnic_netdev_event(struct notifier_block *this, unsigned long event, |
5623 | void *ptr) | 5623 | void *ptr) |
5624 | { | 5624 | { |
5625 | struct net_device *netdev = ptr; | 5625 | struct net_device *netdev = netdev_notifier_info_to_dev(ptr); |
5626 | struct cnic_dev *dev; | 5626 | struct cnic_dev *dev; |
5627 | int new_dev = 0; | 5627 | int new_dev = 0; |
5628 | 5628 | ||
diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c index 171f4b3dda07..c896079728e1 100644 --- a/drivers/net/ethernet/marvell/skge.c +++ b/drivers/net/ethernet/marvell/skge.c | |||
@@ -3706,7 +3706,7 @@ static const struct file_operations skge_debug_fops = { | |||
3706 | static int skge_device_event(struct notifier_block *unused, | 3706 | static int skge_device_event(struct notifier_block *unused, |
3707 | unsigned long event, void *ptr) | 3707 | unsigned long event, void *ptr) |
3708 | { | 3708 | { |
3709 | struct net_device *dev = ptr; | 3709 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
3710 | struct skge_port *skge; | 3710 | struct skge_port *skge; |
3711 | struct dentry *d; | 3711 | struct dentry *d; |
3712 | 3712 | ||
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index d175bbd3ffd3..e09a8c6f8536 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c | |||
@@ -4642,7 +4642,7 @@ static const struct file_operations sky2_debug_fops = { | |||
4642 | static int sky2_device_event(struct notifier_block *unused, | 4642 | static int sky2_device_event(struct notifier_block *unused, |
4643 | unsigned long event, void *ptr) | 4643 | unsigned long event, void *ptr) |
4644 | { | 4644 | { |
4645 | struct net_device *dev = ptr; | 4645 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
4646 | struct sky2_port *sky2 = netdev_priv(dev); | 4646 | struct sky2_port *sky2 = netdev_priv(dev); |
4647 | 4647 | ||
4648 | if (dev->netdev_ops->ndo_open != sky2_open || !sky2_debug) | 4648 | if (dev->netdev_ops->ndo_open != sky2_open || !sky2_debug) |
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index af951f343ff6..51e13d92761e 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | |||
@@ -3311,7 +3311,7 @@ static int netxen_netdev_event(struct notifier_block *this, | |||
3311 | unsigned long event, void *ptr) | 3311 | unsigned long event, void *ptr) |
3312 | { | 3312 | { |
3313 | struct netxen_adapter *adapter; | 3313 | struct netxen_adapter *adapter; |
3314 | struct net_device *dev = (struct net_device *)ptr; | 3314 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
3315 | struct net_device *orig_dev = dev; | 3315 | struct net_device *orig_dev = dev; |
3316 | struct net_device *slave; | 3316 | struct net_device *slave; |
3317 | 3317 | ||
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index da82f2eb73b4..6bb56d43614b 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | |||
@@ -3530,7 +3530,7 @@ static int qlcnic_netdev_event(struct notifier_block *this, | |||
3530 | unsigned long event, void *ptr) | 3530 | unsigned long event, void *ptr) |
3531 | { | 3531 | { |
3532 | struct qlcnic_adapter *adapter; | 3532 | struct qlcnic_adapter *adapter; |
3533 | struct net_device *dev = (struct net_device *)ptr; | 3533 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
3534 | 3534 | ||
3535 | recheck: | 3535 | recheck: |
3536 | if (dev == NULL) | 3536 | if (dev == NULL) |
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index 39e4cb39de29..46cc11d5e205 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c | |||
@@ -2120,7 +2120,7 @@ static void efx_update_name(struct efx_nic *efx) | |||
2120 | static int efx_netdev_event(struct notifier_block *this, | 2120 | static int efx_netdev_event(struct notifier_block *this, |
2121 | unsigned long event, void *ptr) | 2121 | unsigned long event, void *ptr) |
2122 | { | 2122 | { |
2123 | struct net_device *net_dev = ptr; | 2123 | struct net_device *net_dev = netdev_notifier_info_to_dev(ptr); |
2124 | 2124 | ||
2125 | if (net_dev->netdev_ops == &efx_netdev_ops && | 2125 | if (net_dev->netdev_ops == &efx_netdev_ops && |
2126 | event == NETDEV_CHANGENAME) | 2126 | event == NETDEV_CHANGENAME) |
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 02de6c891670..f91bf0ddf031 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c | |||
@@ -103,7 +103,7 @@ static struct packet_type bpq_packet_type __read_mostly = { | |||
103 | }; | 103 | }; |
104 | 104 | ||
105 | static struct notifier_block bpq_dev_notifier = { | 105 | static struct notifier_block bpq_dev_notifier = { |
106 | .notifier_call =bpq_device_event, | 106 | .notifier_call = bpq_device_event, |
107 | }; | 107 | }; |
108 | 108 | ||
109 | 109 | ||
@@ -544,9 +544,10 @@ static void bpq_free_device(struct net_device *ndev) | |||
544 | /* | 544 | /* |
545 | * Handle device status changes. | 545 | * Handle device status changes. |
546 | */ | 546 | */ |
547 | static int bpq_device_event(struct notifier_block *this,unsigned long event, void *ptr) | 547 | static int bpq_device_event(struct notifier_block *this, |
548 | unsigned long event, void *ptr) | ||
548 | { | 549 | { |
549 | struct net_device *dev = (struct net_device *)ptr; | 550 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
550 | 551 | ||
551 | if (!net_eq(dev_net(dev), &init_net)) | 552 | if (!net_eq(dev_net(dev), &init_net)) |
552 | return NOTIFY_DONE; | 553 | return NOTIFY_DONE; |
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 1c502bb0c916..edfddc5f61b4 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
@@ -921,7 +921,7 @@ static struct rtnl_link_ops macvlan_link_ops = { | |||
921 | static int macvlan_device_event(struct notifier_block *unused, | 921 | static int macvlan_device_event(struct notifier_block *unused, |
922 | unsigned long event, void *ptr) | 922 | unsigned long event, void *ptr) |
923 | { | 923 | { |
924 | struct net_device *dev = ptr; | 924 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
925 | struct macvlan_dev *vlan, *next; | 925 | struct macvlan_dev *vlan, *next; |
926 | struct macvlan_port *port; | 926 | struct macvlan_port *port; |
927 | LIST_HEAD(list_kill); | 927 | LIST_HEAD(list_kill); |
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c index 59e9605de316..68efb91a5633 100644 --- a/drivers/net/macvtap.c +++ b/drivers/net/macvtap.c | |||
@@ -1053,7 +1053,7 @@ EXPORT_SYMBOL_GPL(macvtap_get_socket); | |||
1053 | static int macvtap_device_event(struct notifier_block *unused, | 1053 | static int macvtap_device_event(struct notifier_block *unused, |
1054 | unsigned long event, void *ptr) | 1054 | unsigned long event, void *ptr) |
1055 | { | 1055 | { |
1056 | struct net_device *dev = ptr; | 1056 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
1057 | struct macvlan_dev *vlan; | 1057 | struct macvlan_dev *vlan; |
1058 | struct device *classdev; | 1058 | struct device *classdev; |
1059 | dev_t devt; | 1059 | dev_t devt; |
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 59ac143dec25..1d1d0a12765c 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c | |||
@@ -653,12 +653,11 @@ static struct configfs_subsystem netconsole_subsys = { | |||
653 | 653 | ||
654 | /* Handle network interface device notifications */ | 654 | /* Handle network interface device notifications */ |
655 | static int netconsole_netdev_event(struct notifier_block *this, | 655 | static int netconsole_netdev_event(struct notifier_block *this, |
656 | unsigned long event, | 656 | unsigned long event, void *ptr) |
657 | void *ptr) | ||
658 | { | 657 | { |
659 | unsigned long flags; | 658 | unsigned long flags; |
660 | struct netconsole_target *nt; | 659 | struct netconsole_target *nt; |
661 | struct net_device *dev = ptr; | 660 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
662 | bool stopped = false; | 661 | bool stopped = false; |
663 | 662 | ||
664 | if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER || | 663 | if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER || |
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index bb07ba94c3aa..5f66e30d9823 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c | |||
@@ -338,7 +338,7 @@ static void pppoe_flush_dev(struct net_device *dev) | |||
338 | static int pppoe_device_event(struct notifier_block *this, | 338 | static int pppoe_device_event(struct notifier_block *this, |
339 | unsigned long event, void *ptr) | 339 | unsigned long event, void *ptr) |
340 | { | 340 | { |
341 | struct net_device *dev = (struct net_device *)ptr; | 341 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
342 | 342 | ||
343 | /* Only look at sockets that are using this specific device. */ | 343 | /* Only look at sockets that are using this specific device. */ |
344 | switch (event) { | 344 | switch (event) { |
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 7c43261975bd..9273f48a512b 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c | |||
@@ -2647,7 +2647,7 @@ static void team_port_change_check(struct team_port *port, bool linkup) | |||
2647 | static int team_device_event(struct notifier_block *unused, | 2647 | static int team_device_event(struct notifier_block *unused, |
2648 | unsigned long event, void *ptr) | 2648 | unsigned long event, void *ptr) |
2649 | { | 2649 | { |
2650 | struct net_device *dev = (struct net_device *) ptr; | 2650 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
2651 | struct team_port *port; | 2651 | struct team_port *port; |
2652 | 2652 | ||
2653 | port = team_port_get_rtnl(dev); | 2653 | port = team_port_get_rtnl(dev); |
diff --git a/drivers/net/wan/dlci.c b/drivers/net/wan/dlci.c index 147614ed86aa..70ac59929f80 100644 --- a/drivers/net/wan/dlci.c +++ b/drivers/net/wan/dlci.c | |||
@@ -477,7 +477,7 @@ static void dlci_setup(struct net_device *dev) | |||
477 | static int dlci_dev_event(struct notifier_block *unused, | 477 | static int dlci_dev_event(struct notifier_block *unused, |
478 | unsigned long event, void *ptr) | 478 | unsigned long event, void *ptr) |
479 | { | 479 | { |
480 | struct net_device *dev = (struct net_device *) ptr; | 480 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
481 | 481 | ||
482 | if (dev_net(dev) != &init_net) | 482 | if (dev_net(dev) != &init_net) |
483 | return NOTIFY_DONE; | 483 | return NOTIFY_DONE; |
diff --git a/drivers/net/wan/hdlc.c b/drivers/net/wan/hdlc.c index a0a932c63d0a..9c33ca918e19 100644 --- a/drivers/net/wan/hdlc.c +++ b/drivers/net/wan/hdlc.c | |||
@@ -99,7 +99,7 @@ static inline void hdlc_proto_stop(struct net_device *dev) | |||
99 | static int hdlc_device_event(struct notifier_block *this, unsigned long event, | 99 | static int hdlc_device_event(struct notifier_block *this, unsigned long event, |
100 | void *ptr) | 100 | void *ptr) |
101 | { | 101 | { |
102 | struct net_device *dev = ptr; | 102 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
103 | hdlc_device *hdlc; | 103 | hdlc_device *hdlc; |
104 | unsigned long flags; | 104 | unsigned long flags; |
105 | int on; | 105 | int on; |
diff --git a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c index a73b49eb87e3..a33a46fa88dd 100644 --- a/drivers/net/wan/lapbether.c +++ b/drivers/net/wan/lapbether.c | |||
@@ -370,7 +370,7 @@ static int lapbeth_device_event(struct notifier_block *this, | |||
370 | unsigned long event, void *ptr) | 370 | unsigned long event, void *ptr) |
371 | { | 371 | { |
372 | struct lapbethdev *lapbeth; | 372 | struct lapbethdev *lapbeth; |
373 | struct net_device *dev = ptr; | 373 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
374 | 374 | ||
375 | if (dev_net(dev) != &init_net) | 375 | if (dev_net(dev) != &init_net) |
376 | return NOTIFY_DONE; | 376 | return NOTIFY_DONE; |