Lines Matching refs:qopt
47 static int mqprio_parse_opt(struct net_device *dev, struct tc_mqprio_qopt *qopt) in mqprio_parse_opt() argument
52 if (qopt->num_tc > TC_MAX_QUEUE) in mqprio_parse_opt()
57 if (qopt->prio_tc_map[i] >= qopt->num_tc) in mqprio_parse_opt()
62 if (qopt->hw && !dev->netdev_ops->ndo_setup_tc) in mqprio_parse_opt()
68 if (qopt->hw) in mqprio_parse_opt()
71 for (i = 0; i < qopt->num_tc; i++) { in mqprio_parse_opt()
72 unsigned int last = qopt->offset[i] + qopt->count[i]; in mqprio_parse_opt()
77 if (qopt->offset[i] >= dev->real_num_tx_queues || in mqprio_parse_opt()
78 !qopt->count[i] || in mqprio_parse_opt()
83 for (j = i + 1; j < qopt->num_tc; j++) { in mqprio_parse_opt()
84 if (last > qopt->offset[j]) in mqprio_parse_opt()
99 struct tc_mqprio_qopt *qopt = NULL; in mqprio_init() local
110 if (!opt || nla_len(opt) < sizeof(*qopt)) in mqprio_init()
113 qopt = nla_data(opt); in mqprio_init()
114 if (mqprio_parse_opt(dev, qopt)) in mqprio_init()
142 if (qopt->hw) { in mqprio_init()
144 err = dev->netdev_ops->ndo_setup_tc(dev, qopt->num_tc); in mqprio_init()
148 netdev_set_num_tc(dev, qopt->num_tc); in mqprio_init()
149 for (i = 0; i < qopt->num_tc; i++) in mqprio_init()
151 qopt->count[i], qopt->offset[i]); in mqprio_init()
156 netdev_set_prio_tc_map(dev, i, qopt->prio_tc_map[i]); in mqprio_init()