|
@@ -25,6 +25,7 @@
|
|
|
#include <linux/rcupdate.h>
|
|
|
#include <linux/list.h>
|
|
|
#include <linux/slab.h>
|
|
|
+#include <linux/if_vlan.h>
|
|
|
#include <net/sch_generic.h>
|
|
|
#include <net/pkt_sched.h>
|
|
|
#include <net/dst.h>
|
|
@@ -207,15 +208,19 @@ void __qdisc_run(struct Qdisc *q)
|
|
|
|
|
|
unsigned long dev_trans_start(struct net_device *dev)
|
|
|
{
|
|
|
- unsigned long val, res = dev->trans_start;
|
|
|
+ unsigned long val, res;
|
|
|
unsigned int i;
|
|
|
|
|
|
+ if (is_vlan_dev(dev))
|
|
|
+ dev = vlan_dev_real_dev(dev);
|
|
|
+ res = dev->trans_start;
|
|
|
for (i = 0; i < dev->num_tx_queues; i++) {
|
|
|
val = netdev_get_tx_queue(dev, i)->trans_start;
|
|
|
if (val && time_after(val, res))
|
|
|
res = val;
|
|
|
}
|
|
|
dev->trans_start = res;
|
|
|
+
|
|
|
return res;
|
|
|
}
|
|
|
EXPORT_SYMBOL(dev_trans_start);
|