On Wed, Mar 27, 2019 at 08:50:19PM -0600, David Ahern wrote: > On 3/27/19 8:29 PM, Alexei Starovoitov wrote:]\ > > that was a typo. I meant fib6_flags. > > why mess with cfg and use it as weird side effect only to > > get rt->fib6_flags = cfg->fc_flags; working after fib6_nh_init() returns? > > Why not to move that fib6_flags = fc_flags assignment into fib6_nh_init ? > > Then cfg can stay constant and no weird side effects from init function. > > > > Because fib6_flags is not a nh_init argument and it should not be. > > I will duplicate that check to appease your request of not touching > cfg->flags.
not sure what you meant by 'dupulicate that check'. If you're think about copy-pasting the whole 'if ((cfg->fc_flags & RTF_REJECT)' check that it's not nice either. If I read the patch correctly it's essentially initializing fib6_nh and fib6_flags. Both are part of rt. So either pass both pointers or pointer to rt. Why not?