Lines Matching refs:stab

479 	struct qdisc_size_table *stab;  in qdisc_get_stab()  local
510 list_for_each_entry(stab, &qdisc_stab_list, list) { in qdisc_get_stab()
511 if (memcmp(&stab->szopts, s, sizeof(*s))) in qdisc_get_stab()
514 memcmp(stab->data, tab, flex_array_size(stab, data, tsize))) in qdisc_get_stab()
516 stab->refcnt++; in qdisc_get_stab()
517 return stab; in qdisc_get_stab()
526 stab = kmalloc(struct_size(stab, data, tsize), GFP_KERNEL); in qdisc_get_stab()
527 if (!stab) in qdisc_get_stab()
530 stab->refcnt = 1; in qdisc_get_stab()
531 stab->szopts = *s; in qdisc_get_stab()
533 memcpy(stab->data, tab, flex_array_size(stab, data, tsize)); in qdisc_get_stab()
535 list_add_tail(&stab->list, &qdisc_stab_list); in qdisc_get_stab()
537 return stab; in qdisc_get_stab()
552 static int qdisc_dump_stab(struct sk_buff *skb, struct qdisc_size_table *stab) in qdisc_dump_stab() argument
559 if (nla_put(skb, TCA_STAB_BASE, sizeof(stab->szopts), &stab->szopts)) in qdisc_dump_stab()
570 const struct qdisc_size_table *stab) in __qdisc_calculate_pkt_len() argument
574 pkt_len = skb->len + stab->szopts.overhead; in __qdisc_calculate_pkt_len()
575 if (unlikely(!stab->szopts.tsize)) in __qdisc_calculate_pkt_len()
578 slot = pkt_len + stab->szopts.cell_align; in __qdisc_calculate_pkt_len()
582 slot >>= stab->szopts.cell_log; in __qdisc_calculate_pkt_len()
583 if (likely(slot < stab->szopts.tsize)) in __qdisc_calculate_pkt_len()
584 pkt_len = stab->data[slot]; in __qdisc_calculate_pkt_len()
586 pkt_len = stab->data[stab->szopts.tsize - 1] * in __qdisc_calculate_pkt_len()
587 (slot / stab->szopts.tsize) + in __qdisc_calculate_pkt_len()
588 stab->data[slot % stab->szopts.tsize]; in __qdisc_calculate_pkt_len()
590 pkt_len <<= stab->szopts.size_log; in __qdisc_calculate_pkt_len()
921 struct qdisc_size_table *stab; in tc_fill_qdisc() local
957 stab = rtnl_dereference(q->stab); in tc_fill_qdisc()
958 if (stab && qdisc_dump_stab(skb, stab) < 0) in tc_fill_qdisc()
1205 rcu_access_pointer(new->stab)) { in qdisc_graft()
1267 struct qdisc_size_table *stab; in qdisc_create() local
1351 stab = qdisc_get_stab(tca[TCA_STAB], extack); in qdisc_create()
1352 if (IS_ERR(stab)) { in qdisc_create()
1353 err = PTR_ERR(stab); in qdisc_create()
1356 rcu_assign_pointer(sch->stab, stab); in qdisc_create()
1395 qdisc_put_stab(rtnl_dereference(sch->stab)); in qdisc_create()
1410 struct qdisc_size_table *ostab, *stab = NULL; in qdisc_change() local
1428 stab = qdisc_get_stab(tca[TCA_STAB], extack); in qdisc_change()
1429 if (IS_ERR(stab)) in qdisc_change()
1430 return PTR_ERR(stab); in qdisc_change()
1433 ostab = rtnl_dereference(sch->stab); in qdisc_change()
1434 rcu_assign_pointer(sch->stab, stab); in qdisc_change()