Lines Matching refs:rtab
371 static __u8 __detect_linklayer(struct tc_ratespec *r, __u32 *rtab) in __detect_linklayer() argument
379 if ((r->rate > (100000000/8)) || (rtab[0] == 0)) { in __detect_linklayer()
385 && (rtab[cell_low] == rtab[cell_high])) { in __detect_linklayer()
387 cell_low, cell_high, rtab[cell_high]); in __detect_linklayer()
399 struct qdisc_rate_table *rtab; in qdisc_get_rtab() local
407 for (rtab = qdisc_rtab_list; rtab; rtab = rtab->next) { in qdisc_get_rtab()
408 if (!memcmp(&rtab->rate, r, sizeof(struct tc_ratespec)) && in qdisc_get_rtab()
409 !memcmp(&rtab->data, nla_data(tab), 1024)) { in qdisc_get_rtab()
410 rtab->refcnt++; in qdisc_get_rtab()
411 return rtab; in qdisc_get_rtab()
415 rtab = kmalloc(sizeof(*rtab), GFP_KERNEL); in qdisc_get_rtab()
416 if (rtab) { in qdisc_get_rtab()
417 rtab->rate = *r; in qdisc_get_rtab()
418 rtab->refcnt = 1; in qdisc_get_rtab()
419 memcpy(rtab->data, nla_data(tab), 1024); in qdisc_get_rtab()
421 r->linklayer = __detect_linklayer(r, rtab->data); in qdisc_get_rtab()
422 rtab->next = qdisc_rtab_list; in qdisc_get_rtab()
423 qdisc_rtab_list = rtab; in qdisc_get_rtab()
427 return rtab; in qdisc_get_rtab()
433 struct qdisc_rate_table *rtab, **rtabp; in qdisc_put_rtab() local
439 (rtab = *rtabp) != NULL; in qdisc_put_rtab()
440 rtabp = &rtab->next) { in qdisc_put_rtab()
441 if (rtab == tab) { in qdisc_put_rtab()
442 *rtabp = rtab->next; in qdisc_put_rtab()
443 kfree(rtab); in qdisc_put_rtab()