diff options
-rw-r--r-- | drivers/net/usb/hso.c | 5 | ||||
-rw-r--r-- | drivers/net/wimax/i2400m/sdio.c | 5 | ||||
-rw-r--r-- | drivers/net/wimax/i2400m/usb.c | 5 | ||||
-rw-r--r-- | include/linux/netdevice.h | 6 | ||||
-rw-r--r-- | net/bluetooth/bnep/core.c | 5 | ||||
-rw-r--r-- | net/bridge/br_if.c | 6 | ||||
-rw-r--r-- | net/mac80211/iface.c | 5 |
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 | ||
2538 | static struct device_type hso_type = { | ||
2539 | .name = "wwan", | ||
2540 | }; | ||
2541 | |||
2538 | /* Creates our network device */ | 2542 | /* Creates our network device */ |
2539 | static struct hso_device *hso_create_net_device(struct usb_interface *interface, | 2543 | static 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 | ||
374 | static 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 | ||
354 | static 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 | ||
536 | static struct device_type bnep_type = { | ||
537 | .name = "bluetooth", | ||
538 | }; | ||
539 | |||
536 | int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock) | 540 | int 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 | ||
267 | static struct device_type br_type = { | ||
268 | .name = "bridge", | ||
269 | }; | ||
270 | |||
267 | int br_add_bridge(struct net *net, const char *name) | 271 | int 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 | ||
757 | static struct device_type wiphy_type = { | ||
758 | .name = "wlan", | ||
759 | }; | ||
760 | |||
757 | int ieee80211_if_add(struct ieee80211_local *local, const char *name, | 761 | int 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); |