[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XTF] xenbus: Don't wait if the response ring is full
From: Julien Grall <jgrall@xxxxxxxxxx> XenStore response can be bigger than the response ring. In this case, it is possible to have the ring full (e.g cons = 19 and prod = 1043). However, XTF will consider that there is no data and therefore wait for more input. This will result to block indefinitely as the ring is full. This can be solved by avoiding to mask the difference between prod and cons. Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx> --- common/xenbus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/xenbus.c b/common/xenbus.c index 24fff4872372..f3bb30ac693f 100644 --- a/common/xenbus.c +++ b/common/xenbus.c @@ -75,7 +75,7 @@ static void xenbus_read(void *data, size_t len) uint32_t prod = ACCESS_ONCE(xb_ring->rsp_prod); uint32_t cons = ACCESS_ONCE(xb_ring->rsp_cons); - part = mask_xenbus_idx(prod - cons); + part = prod - cons; /* No data? Kick xenstored and wait for it to produce some data. */ if ( !part ) -- 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |