Ah yes, silly mistake. Thanks! Ethan
On Wed, Sep 7, 2011 at 06:44, Brian Haley <brian.ha...@hp.com> wrote: > Hi Ethan, > > On 09/06/2011 10:32 PM, Ethan Jackson wrote: >> Before this patch, ofproto-dpif would not forward any LACP or CFM >> packets regardless of whether or not the relevant modules were >> configured on the in_port. >> >> Feature #6316. >> --- >> ofproto/ofproto-dpif.c | 19 ++++++++++++------- >> 1 files changed, 12 insertions(+), 7 deletions(-) >> >> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c >> index 478768f..4253202 100644 >> --- a/ofproto/ofproto-dpif.c >> +++ b/ofproto/ofproto-dpif.c >> @@ -1614,16 +1614,21 @@ static bool >> process_special(struct ofproto_dpif *ofproto, const struct flow *flow, >> const struct ofpbuf *packet) >> { >> - if (cfm_should_process_flow(flow)) { >> - struct ofport_dpif *ofport = get_ofp_port(ofproto, flow->in_port); >> - if (packet && ofport && ofport->cfm) { >> + struct ofport_dpif *ofport = get_ofp_port(ofproto, flow->in_port); >> + >> + if (!ofport) { >> + return false; >> + } >> + >> + if (ofport->cfm && cfm_should_process_flow(flow)) { >> + if (packet) { >> cfm_process_heartbeat(ofport->cfm, packet); >> } >> return true; >> - } else if (flow->dl_type == htons(ETH_TYPE_LACP)) { >> - struct ofport_dpif *port = get_ofp_port(ofproto, flow->in_port); >> - if (packet && port && port->bundle && port->bundle->lacp) { >> - lacp_process_packet(port->bundle->lacp, port, packet); >> + } else if (ofport && ofport->bundle && ofport->bundle->lacp >> + && flow->dl_type == htons(ETH_TYPE_LACP)) { >> + if (packet) { >> + lacp_process_packet(ofport->bundle->lacp, ofport, packet); >> } >> return true; >> } > > You already checked that 'ofport' is valid above, so you don't need to check > it > again in this 'else' case before de-referencing it, right? > > -Brian > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev