|
@@ -491,8 +491,11 @@ static int flow_change(struct net *net, struct sk_buff *in_skb,
|
|
|
perturb_period = nla_get_u32(tb[TCA_FLOW_PERTURB]) * HZ;
|
|
|
}
|
|
|
|
|
|
- if (TC_H_MAJ(baseclass) == 0)
|
|
|
- baseclass = TC_H_MAKE(tp->q->handle, baseclass);
|
|
|
+ if (TC_H_MAJ(baseclass) == 0) {
|
|
|
+ struct Qdisc *q = tcf_block_q(tp->chain->block);
|
|
|
+
|
|
|
+ baseclass = TC_H_MAKE(q->handle, baseclass);
|
|
|
+ }
|
|
|
if (TC_H_MIN(baseclass) == 0)
|
|
|
baseclass = TC_H_MAKE(baseclass, 1);
|
|
|
|