Looks good to me: Acked-by: Jarno Rajahalme <ja...@ovn.org>
> On Jan 11, 2017, at 3:37 PM, Andy Zhou <az...@ovn.org> wrote: > > The may_steal flag is now used, Remove OVS_UNUSED. > > Since dp_packet_delete() handles the NULL pointer properly, we can > drop a few tracking variables, and make the code easier to follow. > > Signed-off-by: Andy Zhou <az...@ovn.org> > --- > lib/dpif.c | 31 ++++++++++++------------------- > 1 file changed, 12 insertions(+), 19 deletions(-) > > diff --git a/lib/dpif.c b/lib/dpif.c > index cc4936c..cea2448 100644 > --- a/lib/dpif.c > +++ b/lib/dpif.c > @@ -1107,12 +1107,11 @@ struct dpif_execute_helper_aux { > * meaningful. */ > static void > dpif_execute_helper_cb(void *aux_, struct dp_packet_batch *packets_, > - const struct nlattr *action, bool may_steal > OVS_UNUSED) > + const struct nlattr *action, bool may_steal) > { > struct dpif_execute_helper_aux *aux = aux_; > int type = nl_attr_type(action); > struct dp_packet *packet = packets_->packets[0]; > - struct dp_packet *trunc_packet = NULL, *orig_packet; > > ovs_assert(packets_->count == 1); > > @@ -1127,8 +1126,7 @@ dpif_execute_helper_cb(void *aux_, struct > dp_packet_batch *packets_, > struct ofpbuf execute_actions; > uint64_t stub[256 / 8]; > struct pkt_metadata *md = &packet->md; > - bool dst_set, clone = false; > - uint32_t cutlen = dp_packet_get_cutlen(packet); > + bool dst_set; > > dst_set = flow_tnl_dst_is_set(&md->tunnel); > if (dst_set) { > @@ -1146,20 +1144,17 @@ dpif_execute_helper_cb(void *aux_, struct > dp_packet_batch *packets_, > execute.actions_len = NLA_ALIGN(action->nla_len); > } > > - orig_packet = packet; > - > - if (cutlen > 0 && (type == OVS_ACTION_ATTR_OUTPUT || > - type == OVS_ACTION_ATTR_TUNNEL_PUSH || > - type == OVS_ACTION_ATTR_TUNNEL_POP || > - type == OVS_ACTION_ATTR_USERSPACE)) { > + struct dp_packet *clone = NULL; > + uint32_t cutlen = dp_packet_get_cutlen(packet); > + if (cutlen && (type == OVS_ACTION_ATTR_OUTPUT > + || type == OVS_ACTION_ATTR_TUNNEL_PUSH > + || type == OVS_ACTION_ATTR_TUNNEL_POP > + || type == OVS_ACTION_ATTR_USERSPACE)) { > + dp_packet_reset_cutlen(packet); > if (!may_steal) { > - trunc_packet = dp_packet_clone(packet); > - packet = trunc_packet; > - clone = true; > + packet = clone = dp_packet_clone(packet); > } > - > dp_packet_set_size(packet, dp_packet_size(packet) - cutlen); > - dp_packet_reset_cutlen(orig_packet); > } > > execute.packet = packet; > @@ -1170,13 +1165,11 @@ dpif_execute_helper_cb(void *aux_, struct > dp_packet_batch *packets_, > aux->error = dpif_execute(aux->dpif, &execute); > log_execute_message(aux->dpif, &execute, true, aux->error); > > + dp_packet_delete(clone); > + > if (dst_set) { > ofpbuf_uninit(&execute_actions); > } > - > - if (clone) { > - dp_packet_delete(trunc_packet); > - } > break; > } > > -- > 2.7.4 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev