On Fri, Mar 21, 2014 at 10:53:35AM -0700, Gurucharan Shetty wrote: > On Fri, Mar 21, 2014 at 9:47 AM, Ben Pfaff <b...@nicira.com> wrote: > > On Fri, Mar 21, 2014 at 09:49:17AM -0700, Jarno Rajahalme wrote: > >> IMO this would better match the macro, can you try this one instead: > >> > >> static inline struct pkt_metadata pkt_metadata_from_flow(const struct flow > >> *flow) > >> { > >> struct pkt_metadata md; > >> > >> md.tunnel = flow->tunnel; > >> md.skb_priority = flow->skb_priority; > >> md.pkt_mark = flow->pkt_mark; > >> md.in_port = flow->in_port; > >> > >> return md; > >> } > >> > >> I did not try this myself, hopefully no typos above. If this works, then > >> the changes in packets.c are not necessary, and both call sites change to > >> something like: > >> > >> > - struct pkt_metadata md = > >> > PKT_METADATA_INITIALIZER_FLOW(&flow); > >> > + struct pkt_metadata md = pkt_metadata_from_flow(&flow); > > > > Old compilers generated bad code for struct returns, so it might be a > > good idea to look at the generated code to make sure it's sensible. > struct returns does not seem to be a problem for visual studio.
OK. (By the way, by "bad code" here, I meant code that performs badly, not incorrect code.) _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev