On Tue, Apr 12, 2016 at 10:59:53AM +0100, Andrew Cooper wrote: > On 12/04/16 10:57, Wei Liu wrote: > > The variable out_cons was only used to temporarily hold the consumer > > index. Use cons directly to simplify code a bit. > > > > No functional change introduced. > > > > Signed-off-by: Wei Liu <wei.l...@citrix.com> > > --- > > Cc: Stefano Stabellini <sstabell...@kernel.org> > > Cc: Anthony Perard <anthony.per...@citrix.com> > > --- > > hw/display/xenfb.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c > > index 9866dfd..78a8dcd 100644 > > --- a/hw/display/xenfb.c > > +++ b/hw/display/xenfb.c > > @@ -770,16 +770,16 @@ static void xenfb_invalidate(void *opaque) > > > > static void xenfb_handle_events(struct XenFB *xenfb) > > { > > - uint32_t prod, cons, out_cons; > > + uint32_t prod, cons; > > struct xenfb_page *page = xenfb->c.page; > > > > prod = page->out_prod; > > - out_cons = page->out_cons; > > - if (prod - out_cons > XENFB_OUT_RING_LEN) { > > + cons = page->out_cons; > > You need the xen_rmb() before the first use of prod or cons. >
Good point. I overlooked that. The change should belong to either previous patch or a new patch though. Wei. > ~Andrew > > > + if (prod - cons > XENFB_OUT_RING_LEN) { > > return; > > } > > xen_rmb(); /* ensure we see ring contents up to prod */ > > - for (cons = out_cons; cons != prod; cons++) { > > + for ( ; cons != prod; cons++) { > > union xenfb_out_event *event = &XENFB_OUT_RING_REF(page, cons); > > uint8_t type = event->type; > > int x, y, w, h; > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel