[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libvchan: Make raw_get_{data_ready, buffer_space} match



Jason Andryuk writes ("[PATCH] libvchan: Make raw_get_{data_ready,buffer_space} 
match"):
> For writing into a vchan, raw_get_buffer_space used >, allowing the full
> ring size to be written.  On the read side, raw_get_data_ready compared
> the ring size with >=.  This mismatch means a completely filled buffer
> cannot be read.  Fix this by making the size checks identical.

This seems right to me, but I have CC'd the authors of this area of
code to give them a chance to comment.

Thanks,
Ian.

> Signed-off-by: Jason Andryuk <andryuk@xxxxxxxx>
> ---
>  tools/libvchan/io.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/libvchan/io.c b/tools/libvchan/io.c
> index 804c63c..6e6e239 100644
> --- a/tools/libvchan/io.c
> +++ b/tools/libvchan/io.c
> @@ -118,7 +118,7 @@ static inline int send_notify(struct libxenvchan *ctrl, 
> uint8_t bit)
>  static inline int raw_get_data_ready(struct libxenvchan *ctrl)
>  {
>       uint32_t ready = rd_prod(ctrl) - rd_cons(ctrl);
> -     if (ready >= rd_ring_size(ctrl))
> +     if (ready > rd_ring_size(ctrl))
>               /* We have no way to return errors.  Locking up the ring is
>                * better than the alternatives. */
>               return 0;
> -- 
> 1.8.3.1
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.