Lines Matching refs:fnew
396 struct flow_filter *fold, *fnew;
435 fnew = kzalloc(sizeof(*fnew), GFP_KERNEL);
436 if (!fnew)
439 err = tcf_em_tree_validate(tp, tb[TCA_FLOW_EMATCHES], &fnew->ematches);
443 err = tcf_exts_init(&fnew->exts, net, TCA_FLOW_ACT, TCA_FLOW_POLICE);
447 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &fnew->exts, flags,
458 /* Copy fold into fnew */
459 fnew->tp = fold->tp;
460 fnew->handle = fold->handle;
461 fnew->nkeys = fold->nkeys;
462 fnew->keymask = fold->keymask;
463 fnew->mode = fold->mode;
464 fnew->mask = fold->mask;
465 fnew->xor = fold->xor;
466 fnew->rshift = fold->rshift;
467 fnew->addend = fold->addend;
468 fnew->divisor = fold->divisor;
469 fnew->baseclass = fold->baseclass;
470 fnew->hashrnd = fold->hashrnd;
512 fnew->handle = handle;
513 fnew->mask = ~0U;
514 fnew->tp = tp;
515 get_random_bytes(&fnew->hashrnd, 4);
518 timer_setup(&fnew->perturb_timer, flow_perturbation, TIMER_DEFERRABLE);
523 fnew->keymask = keymask;
524 fnew->nkeys = nkeys;
527 fnew->mode = mode;
530 fnew->mask = nla_get_u32(tb[TCA_FLOW_MASK]);
532 fnew->xor = nla_get_u32(tb[TCA_FLOW_XOR]);
534 fnew->rshift = nla_get_u32(tb[TCA_FLOW_RSHIFT]);
536 fnew->addend = nla_get_u32(tb[TCA_FLOW_ADDEND]);
539 fnew->divisor = nla_get_u32(tb[TCA_FLOW_DIVISOR]);
541 fnew->baseclass = baseclass;
543 fnew->perturb_period = perturb_period;
545 mod_timer(&fnew->perturb_timer, jiffies + perturb_period);
548 list_add_tail_rcu(&fnew->list, &head->filters);
550 list_replace_rcu(&fold->list, &fnew->list);
552 *arg = fnew;
561 tcf_exts_destroy(&fnew->exts);
562 tcf_em_tree_destroy(&fnew->ematches);
564 kfree(fnew);