diff options
-rw-r--r-- | net/core/net-sysfs.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 4ff661f6f989..8f8b7b6c2945 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c | |||
@@ -928,6 +928,8 @@ static int rx_queue_add_kobject(struct net_device *dev, int index) | |||
928 | if (error) | 928 | if (error) |
929 | return error; | 929 | return error; |
930 | 930 | ||
931 | dev_hold(queue->dev); | ||
932 | |||
931 | if (dev->sysfs_rx_queue_group) { | 933 | if (dev->sysfs_rx_queue_group) { |
932 | error = sysfs_create_group(kobj, dev->sysfs_rx_queue_group); | 934 | error = sysfs_create_group(kobj, dev->sysfs_rx_queue_group); |
933 | if (error) { | 935 | if (error) { |
@@ -937,7 +939,6 @@ static int rx_queue_add_kobject(struct net_device *dev, int index) | |||
937 | } | 939 | } |
938 | 940 | ||
939 | kobject_uevent(kobj, KOBJ_ADD); | 941 | kobject_uevent(kobj, KOBJ_ADD); |
940 | dev_hold(queue->dev); | ||
941 | 942 | ||
942 | return error; | 943 | return error; |
943 | } | 944 | } |
@@ -1464,6 +1465,8 @@ static int netdev_queue_add_kobject(struct net_device *dev, int index) | |||
1464 | if (error) | 1465 | if (error) |
1465 | return error; | 1466 | return error; |
1466 | 1467 | ||
1468 | dev_hold(queue->dev); | ||
1469 | |||
1467 | #ifdef CONFIG_BQL | 1470 | #ifdef CONFIG_BQL |
1468 | error = sysfs_create_group(kobj, &dql_group); | 1471 | error = sysfs_create_group(kobj, &dql_group); |
1469 | if (error) { | 1472 | if (error) { |
@@ -1473,7 +1476,6 @@ static int netdev_queue_add_kobject(struct net_device *dev, int index) | |||
1473 | #endif | 1476 | #endif |
1474 | 1477 | ||
1475 | kobject_uevent(kobj, KOBJ_ADD); | 1478 | kobject_uevent(kobj, KOBJ_ADD); |
1476 | dev_hold(queue->dev); | ||
1477 | 1479 | ||
1478 | return 0; | 1480 | return 0; |
1479 | } | 1481 | } |