Thread (85 messages) 85 messages, 6 authors, 2016-03-14

Re: [PATCH v2 3/7] vhost: refactor virtio_dev_merge_rx

From: Xie, Huawei <hidden>
Date: 2016-03-07 07:03:40

On 3/7/2016 2:49 PM, Yuanhan Liu wrote:
On Mon, Mar 07, 2016 at 06:38:42AM +0000, Xie, Huawei wrote:
quoted
On 3/7/2016 2:35 PM, Yuanhan Liu wrote:
quoted
On Mon, Mar 07, 2016 at 06:22:25AM +0000, Xie, Huawei wrote:
quoted
On 2/18/2016 9:48 PM, Yuanhan Liu wrote:
quoted
+	uint16_t idx = vq->avail->ring[avail_idx & (vq->size - 1)];
+	uint32_t vec_id = *vec_idx;
+	uint32_t len    = *allocated;
 
There is bug not using volatile to retrieve the avail idx.
avail_idx? This is actually from "vq->last_used_idx_res". 
uint16_t idx = vq->avail->ring[avail_idx & (vq->size - 1)]

the idx retrieved from avail->ring. 
Hmm.. I saw quite many similar lines of code retrieving an index from
avail->ring, but none of them acutally use "volatile". So, a bug?
Others are not. This function is inline, and is in one translation unit
with its caller.
	--yliu
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help