> On Apr 15, 2015, at 10:15 AM, Sorin Vinturis 
> <[email protected]> wrote:
> 
> The nl_sock_transact_multiple function enters in an infinite loop,
> when invalid error, EINVAL, is returned by nl_sock_transact_multiple__.
> EINVAL is the error returned by the latter function when a driver
> request fails.
> 
> v2: Any error returned by nl_sock_transact_multiple__, except EAGAIN,
> causes the rest of NL transactions to be aborted.
> An error response from the driver is considered a successful transaction
> and the 'done' transactions counter is incremented.
> 
> Signed-off-by: Sorin Vinturis <[email protected]>
> Reported-by: Alin Gabriel Serdean <[email protected]>
> Reported-at: 
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openvswitch_ovs-2Dissues_issues_57&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pNHQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=d8mgiPcztp_HOGcfxH4JYrPaBgQY_KhDBrPpkTxU1sU&s=xbWnO7pVIkwEG2E5CGY7fPta2vCaTiLMbzHynS2TF9g&e=
>  
> Acked-by: Eitan Eliahu <[email protected]>

Thanks for the revision. Looks good but for a minor comment.

> @@ -797,8 +797,12 @@ nl_sock_transact_multiple__(struct nl_sock *sock,
>                              txn->request->size,
>                              reply_buf, sizeof reply_buf,
>                              &reply_len, NULL)) {
> +            /* The transaction was successfully sent but failed. */
> +            (*done)++;

Should we be incrementing ‘*done’? ‘done’, IMO, represents the number of 
transactions that got executed successfully. If the transaction failed (due to 
a transport error), then it did not get executed successfully. So, IMO, we 
should not be incrementing ‘done’.

Acked-by: Nithin Raju <[email protected]>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to