[ovs-dev] [coverity3 05/13] rconn: Clarify rconn_run_wait().

Ethan Jackson ethan at nicira.com
Wed Feb 23 21:47:14 UTC 2011


Looks Fine.

On Wed, Feb 23, 2011 at 1:24 PM, Ben Pfaff <blp at nicira.com> wrote:
> At first glance the vconn_wait() call looks risky because this function
> checked whether rc->vconn is nonnull at the top.  In fact it's OK because
> rc->state will be S_ACTIVE or S_IDLE only if rc->vconn is nonnull, but
> there's no harm in putting that check inside the block that only runs if
> rc->vconn is nonnull.
>
> Coverity #10714.
> ---
>  lib/rconn.c |    9 ++++-----
>  1 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/lib/rconn.c b/lib/rconn.c
> index 6187576..443690b 100644
> --- a/lib/rconn.c
> +++ b/lib/rconn.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2008, 2009, 2010 Nicira Networks.
> + * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
> @@ -510,6 +510,9 @@ rconn_run_wait(struct rconn *rc)
>
>     if (rc->vconn) {
>         vconn_run_wait(rc->vconn);
> +        if ((rc->state & (S_ACTIVE | S_IDLE)) && !list_is_empty(&rc->txq)) {
> +            vconn_wait(rc->vconn, WAIT_SEND);
> +        }
>     }
>     for (i = 0; i < rc->n_monitors; i++) {
>         vconn_run_wait(rc->monitors[i]);
> @@ -520,10 +523,6 @@ rconn_run_wait(struct rconn *rc)
>         long long int expires = sat_add(rc->state_entered, timeo);
>         poll_timer_wait_until(expires * 1000);
>     }
> -
> -    if ((rc->state & (S_ACTIVE | S_IDLE)) && !list_is_empty(&rc->txq)) {
> -        vconn_wait(rc->vconn, WAIT_SEND);
> -    }
>  }
>
>  /* Attempts to receive a packet from 'rc'.  If successful, returns the packet;
> --
> 1.7.2.3
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
>




More information about the dev mailing list