aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2013-05-27 21:30:21 -0400
committerDavid S. Miller <davem@davemloft.net>2013-05-28 16:11:01 -0400
commit351638e7deeed2ec8ce451b53d33921b3da68f83 (patch)
tree175dfff289b5e3baecffbc7e97d1884e9a18345c /drivers/net
parentb1098bbe1b24d5d90cff92fbd716d2ef4bed2cff (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.c2
-rw-r--r--drivers/net/can/led.c4
-rw-r--r--drivers/net/ethernet/broadcom/cnic.c2
-rw-r--r--drivers/net/ethernet/marvell/skge.c2
-rw-r--r--drivers/net/ethernet/marvell/sky2.c2
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c2
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c2
-rw-r--r--drivers/net/ethernet/sfc/efx.c2
-rw-r--r--drivers/net/hamradio/bpqether.c7
-rw-r--r--drivers/net/macvlan.c2
-rw-r--r--drivers/net/macvtap.c2
-rw-r--r--drivers/net/netconsole.c5
-rw-r--r--drivers/net/ppp/pppoe.c2
-rw-r--r--drivers/net/team/team.c2
-rw-r--r--drivers/net/wan/dlci.c2
-rw-r--r--drivers/net/wan/hdlc.c2
-rw-r--r--drivers/net/wan/lapbether.c2
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,
3277static int bond_netdev_event(struct notifier_block *this, 3277static 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 */
90static int can_led_notifier(struct notifier_block *nb, unsigned long msg, 90static 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,
5622static int cnic_netdev_event(struct notifier_block *this, unsigned long event, 5622static 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 = {
3706static int skge_device_event(struct notifier_block *unused, 3706static 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 = {
4642static int sky2_device_event(struct notifier_block *unused, 4642static 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
3535recheck: 3535recheck:
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)
2120static int efx_netdev_event(struct notifier_block *this, 2120static 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
105static struct notifier_block bpq_dev_notifier = { 105static 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 */
547static int bpq_device_event(struct notifier_block *this,unsigned long event, void *ptr) 547static 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 = {
921static int macvlan_device_event(struct notifier_block *unused, 921static 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);
1053static int macvtap_device_event(struct notifier_block *unused, 1053static 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 */
655static int netconsole_netdev_event(struct notifier_block *this, 655static 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)
338static int pppoe_device_event(struct notifier_block *this, 338static 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)
2647static int team_device_event(struct notifier_block *unused, 2647static 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)
477static int dlci_dev_event(struct notifier_block *unused, 477static 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)
99static int hdlc_device_event(struct notifier_block *this, unsigned long event, 99static 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;