[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
On 05/19/2014 07:31 AM, Ian Jackson wrote:
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.
This also looks correct to me.
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
--
Daniel De Graaf
National Security Agency
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|