Lines Matching defs:stab
481 struct qdisc_size_table *stab;
512 list_for_each_entry(stab, &qdisc_stab_list, list) {
513 if (memcmp(&stab->szopts, s, sizeof(*s)))
516 memcmp(stab->data, tab, flex_array_size(stab, data, tsize)))
518 stab->refcnt++;
519 return stab;
528 stab = kmalloc(struct_size(stab, data, tsize), GFP_KERNEL);
529 if (!stab)
532 stab->refcnt = 1;
533 stab->szopts = *s;
535 memcpy(stab->data, tab, flex_array_size(stab, data, tsize));
537 list_add_tail(&stab->list, &qdisc_stab_list);
539 return stab;
554 static int qdisc_dump_stab(struct sk_buff *skb, struct qdisc_size_table *stab)
561 if (nla_put(skb, TCA_STAB_BASE, sizeof(stab->szopts), &stab->szopts))
572 const struct qdisc_size_table *stab)
576 pkt_len = skb->len + stab->szopts.overhead;
577 if (unlikely(!stab->szopts.tsize))
580 slot = pkt_len + stab->szopts.cell_align;
584 slot >>= stab->szopts.cell_log;
585 if (likely(slot < stab->szopts.tsize))
586 pkt_len = stab->data[slot];
588 pkt_len = stab->data[stab->szopts.tsize - 1] *
589 (slot / stab->szopts.tsize) +
590 stab->data[slot % stab->szopts.tsize];
592 pkt_len <<= stab->szopts.size_log;
922 struct qdisc_size_table *stab;
958 stab = rtnl_dereference(q->stab);
959 if (stab && qdisc_dump_stab(skb, stab) < 0)
1206 rcu_access_pointer(new->stab)) {
1268 struct qdisc_size_table *stab;
1324 stab = qdisc_get_stab(tca[TCA_STAB], extack);
1325 if (IS_ERR(stab)) {
1326 err = PTR_ERR(stab);
1329 rcu_assign_pointer(sch->stab, stab);
1368 qdisc_put_stab(rtnl_dereference(sch->stab));
1383 struct qdisc_size_table *ostab, *stab = NULL;
1401 stab = qdisc_get_stab(tca[TCA_STAB], extack);
1402 if (IS_ERR(stab))
1403 return PTR_ERR(stab);
1406 ostab = rtnl_dereference(sch->stab);
1407 rcu_assign_pointer(sch->stab, stab);