> On 7 May 2019, at 20:39, David Miller <davem@xxxxxxxxxxxxx> wrote: > > From: Kevin 'ldir' Darbyshire-Bryant <ldir@xxxxxxxxxxxxxxxxxxxxxxx> > Date: Sun, 5 May 2019 13:20:13 +0000 > >> ctinfo is a new tc filter action module. It is designed to restore >> information contained in conntrack marks to other places. At present it >> can restore DSCP values to IPv4/6 diffserv fields and also copy >> conntrack marks to skb marks. As such the 2nd function effectively >> replaces the existing act_connmark module Hi David, > > This needs more time for review and therefore I'm deferring this to the > next merge window. Thank you. > >> +static inline int tcf_ctinfo_dump(struct sk_buff *skb, struct tc_action *a, >> + int bind, int ref) >> +{ >> + unsigned char *b = skb_tail_pointer(skb); >> + struct tcf_ctinfo *ci = to_ctinfo(a); >> + struct tcf_ctinfo_params *cp; >> + struct tc_ctinfo opt = { >> + .index = ci->tcf_index, >> + .refcnt = refcount_read(&ci->tcf_refcnt) - ref, >> + .bindcnt = atomic_read(&ci->tcf_bindcnt) - bind, >> + }; >> + struct tcf_t t; >> + struct tc_ctinfo_dscp dscpparm; >> + struct tc_ctinfo_stats_dscp dscpstats; > All done, I’ve put struct tcf_ctinfo *ci = to_ctinfo(a); at the top though as other variables need that initialised, hope that’s ok, else please explain what I should have done. > Likewise. > > Also, never use the inline keyword in foo.c files, always let the compiler > decide. The perils of using existing code, should have spotted that thought, didn’t inline anything else ‘cos in theory I know better. Oh well. Shame checkpatch didn’t warn me about christmas trees or inline otherwise it wouldn’t have got this far. Thanks for your time and patience. Cheers, Kevin D-B gpg: 012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A