aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/usb/hso.c5
-rw-r--r--drivers/net/wimax/i2400m/sdio.c5
-rw-r--r--drivers/net/wimax/i2400m/usb.c5
-rw-r--r--include/linux/netdevice.h6
-rw-r--r--net/bluetooth/bnep/core.c5
-rw-r--r--net/bridge/br_if.c6
-rw-r--r--net/mac80211/iface.c5
7 files changed, 37 insertions, 0 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 3f9c92a2afcb..fa4e58196c21 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -2535,6 +2535,10 @@ static void hso_create_rfkill(struct hso_device *hso_dev,
2535 } 2535 }
2536} 2536}
2537 2537
2538static struct device_type hso_type = {
2539 .name = "wwan",
2540};
2541
2538/* Creates our network device */ 2542/* Creates our network device */
2539static struct hso_device *hso_create_net_device(struct usb_interface *interface, 2543static struct hso_device *hso_create_net_device(struct usb_interface *interface,
2540 int port_spec) 2544 int port_spec)
@@ -2575,6 +2579,7 @@ static struct hso_device *hso_create_net_device(struct usb_interface *interface,
2575 goto exit; 2579 goto exit;
2576 } 2580 }
2577 SET_NETDEV_DEV(net, &interface->dev); 2581 SET_NETDEV_DEV(net, &interface->dev);
2582 SET_NETDEV_DEVTYPE(net, &hso_type);
2578 2583
2579 /* registering our net device */ 2584 /* registering our net device */
2580 result = register_netdev(net); 2585 result = register_netdev(net);
diff --git a/drivers/net/wimax/i2400m/sdio.c b/drivers/net/wimax/i2400m/sdio.c
index ea7b29034aab..2981e211e04f 100644
--- a/drivers/net/wimax/i2400m/sdio.c
+++ b/drivers/net/wimax/i2400m/sdio.c
@@ -371,6 +371,10 @@ error:
371} 371}
372 372
373 373
374static struct device_type i2400ms_type = {
375 .name = "wimax",
376};
377
374/* 378/*
375 * Probe a i2400m interface and register it 379 * Probe a i2400m interface and register it
376 * 380 *
@@ -412,6 +416,7 @@ int i2400ms_probe(struct sdio_func *func,
412 goto error_alloc_netdev; 416 goto error_alloc_netdev;
413 } 417 }
414 SET_NETDEV_DEV(net_dev, dev); 418 SET_NETDEV_DEV(net_dev, dev);
419 SET_NETDEV_DEVTYPE(net_dev, &i2400ms_type);
415 i2400m = net_dev_to_i2400m(net_dev); 420 i2400m = net_dev_to_i2400m(net_dev);
416 i2400ms = container_of(i2400m, struct i2400ms, i2400m); 421 i2400ms = container_of(i2400m, struct i2400ms, i2400m);
417 i2400m->wimax_dev.net_dev = net_dev; 422 i2400m->wimax_dev.net_dev = net_dev;
diff --git a/drivers/net/wimax/i2400m/usb.c b/drivers/net/wimax/i2400m/usb.c
index cfdaf69da9d1..7eadd11c815b 100644
--- a/drivers/net/wimax/i2400m/usb.c
+++ b/drivers/net/wimax/i2400m/usb.c
@@ -351,6 +351,10 @@ error:
351} 351}
352 352
353 353
354static struct device_type i2400mu_type = {
355 .name = "wimax",
356};
357
354/* 358/*
355 * Probe a i2400m interface and register it 359 * Probe a i2400m interface and register it
356 * 360 *
@@ -388,6 +392,7 @@ int i2400mu_probe(struct usb_interface *iface,
388 goto error_alloc_netdev; 392 goto error_alloc_netdev;
389 } 393 }
390 SET_NETDEV_DEV(net_dev, dev); 394 SET_NETDEV_DEV(net_dev, dev);
395 SET_NETDEV_DEVTYPE(net_dev, &i2400mu_type);
391 i2400m = net_dev_to_i2400m(net_dev); 396 i2400m = net_dev_to_i2400m(net_dev);
392 i2400mu = container_of(i2400m, struct i2400mu, i2400m); 397 i2400mu = container_of(i2400m, struct i2400mu, i2400m);
393 i2400m->wimax_dev.net_dev = net_dev; 398 i2400m->wimax_dev.net_dev = net_dev;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index a44118b1b56c..65ee1929b2b1 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -998,6 +998,12 @@ static inline void *netdev_priv(const struct net_device *dev)
998 */ 998 */
999#define SET_NETDEV_DEV(net, pdev) ((net)->dev.parent = (pdev)) 999#define SET_NETDEV_DEV(net, pdev) ((net)->dev.parent = (pdev))
1000 1000
1001/* Set the sysfs device type for the network logical device to allow
1002 * fin grained indentification of different network device types. For
1003 * example Ethernet, Wirelss LAN, Bluetooth, WiMAX etc.
1004 */
1005#define SET_NETDEV_DEVTYPE(net, devtype) ((net)->dev.type = (devtype))
1006
1001/** 1007/**
1002 * netif_napi_add - initialize a napi context 1008 * netif_napi_add - initialize a napi context
1003 * @dev: network device 1009 * @dev: network device
diff --git a/net/bluetooth/bnep/core.c b/net/bluetooth/bnep/core.c
index 52a6ce0d772b..cafe9f54d841 100644
--- a/net/bluetooth/bnep/core.c
+++ b/net/bluetooth/bnep/core.c
@@ -533,6 +533,10 @@ static struct device *bnep_get_device(struct bnep_session *session)
533 return conn ? &conn->dev : NULL; 533 return conn ? &conn->dev : NULL;
534} 534}
535 535
536static struct device_type bnep_type = {
537 .name = "bluetooth",
538};
539
536int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock) 540int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock)
537{ 541{
538 struct net_device *dev; 542 struct net_device *dev;
@@ -586,6 +590,7 @@ int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock)
586#endif 590#endif
587 591
588 SET_NETDEV_DEV(dev, bnep_get_device(s)); 592 SET_NETDEV_DEV(dev, bnep_get_device(s));
593 SET_NETDEV_DEVTYPE(dev, &bnep_type);
589 594
590 err = register_netdev(dev); 595 err = register_netdev(dev);
591 if (err) { 596 if (err) {
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index e486f1fc3632..142ebac14176 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -264,6 +264,10 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br,
264 return p; 264 return p;
265} 265}
266 266
267static struct device_type br_type = {
268 .name = "bridge",
269};
270
267int br_add_bridge(struct net *net, const char *name) 271int br_add_bridge(struct net *net, const char *name)
268{ 272{
269 struct net_device *dev; 273 struct net_device *dev;
@@ -280,6 +284,8 @@ int br_add_bridge(struct net *net, const char *name)
280 goto out_free; 284 goto out_free;
281 } 285 }
282 286
287 SET_NETDEV_DEVTYPE(dev, &br_type);
288
283 ret = register_netdevice(dev); 289 ret = register_netdevice(dev);
284 if (ret) 290 if (ret)
285 goto out_free; 291 goto out_free;
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index f6005adcbf90..b8295cbd7e8f 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -754,6 +754,10 @@ int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata,
754 return 0; 754 return 0;
755} 755}
756 756
757static struct device_type wiphy_type = {
758 .name = "wlan",
759};
760
757int ieee80211_if_add(struct ieee80211_local *local, const char *name, 761int ieee80211_if_add(struct ieee80211_local *local, const char *name,
758 struct net_device **new_dev, enum nl80211_iftype type, 762 struct net_device **new_dev, enum nl80211_iftype type,
759 struct vif_params *params) 763 struct vif_params *params)
@@ -785,6 +789,7 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
785 789
786 memcpy(ndev->dev_addr, local->hw.wiphy->perm_addr, ETH_ALEN); 790 memcpy(ndev->dev_addr, local->hw.wiphy->perm_addr, ETH_ALEN);
787 SET_NETDEV_DEV(ndev, wiphy_dev(local->hw.wiphy)); 791 SET_NETDEV_DEV(ndev, wiphy_dev(local->hw.wiphy));
792 SET_NETDEV_DEVTYPE(ndev, &wiphy_type);
788 793
789 /* don't use IEEE80211_DEV_TO_SUB_IF because it checks too much */ 794 /* don't use IEEE80211_DEV_TO_SUB_IF because it checks too much */
790 sdata = netdev_priv(ndev); 795 sdata = netdev_priv(ndev);