Lines Matching refs:fnew
394 struct flow_filter *fold, *fnew;
433 fnew = kzalloc(sizeof(*fnew), GFP_KERNEL);
434 if (!fnew)
437 err = tcf_em_tree_validate(tp, tb[TCA_FLOW_EMATCHES], &fnew->ematches);
441 err = tcf_exts_init(&fnew->exts, net, TCA_FLOW_ACT, TCA_FLOW_POLICE);
445 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &fnew->exts, ovr,
456 /* Copy fold into fnew */
457 fnew->tp = fold->tp;
458 fnew->handle = fold->handle;
459 fnew->nkeys = fold->nkeys;
460 fnew->keymask = fold->keymask;
461 fnew->mode = fold->mode;
462 fnew->mask = fold->mask;
463 fnew->xor = fold->xor;
464 fnew->rshift = fold->rshift;
465 fnew->addend = fold->addend;
466 fnew->divisor = fold->divisor;
467 fnew->baseclass = fold->baseclass;
468 fnew->hashrnd = fold->hashrnd;
510 fnew->handle = handle;
511 fnew->mask = ~0U;
512 fnew->tp = tp;
513 get_random_bytes(&fnew->hashrnd, 4);
516 timer_setup(&fnew->perturb_timer, flow_perturbation, TIMER_DEFERRABLE);
521 fnew->keymask = keymask;
522 fnew->nkeys = nkeys;
525 fnew->mode = mode;
528 fnew->mask = nla_get_u32(tb[TCA_FLOW_MASK]);
530 fnew->xor = nla_get_u32(tb[TCA_FLOW_XOR]);
532 fnew->rshift = nla_get_u32(tb[TCA_FLOW_RSHIFT]);
534 fnew->addend = nla_get_u32(tb[TCA_FLOW_ADDEND]);
537 fnew->divisor = nla_get_u32(tb[TCA_FLOW_DIVISOR]);
539 fnew->baseclass = baseclass;
541 fnew->perturb_period = perturb_period;
543 mod_timer(&fnew->perturb_timer, jiffies + perturb_period);
546 list_add_tail_rcu(&fnew->list, &head->filters);
548 list_replace_rcu(&fold->list, &fnew->list);
550 *arg = fnew;
559 tcf_exts_destroy(&fnew->exts);
560 tcf_em_tree_destroy(&fnew->ematches);
562 kfree(fnew);