[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH V1 14/16] xen/ioreq: Use guest_cmpxchg64() instead of cmpxchg()
> -----Original Message----- > From: Julien Grall <julien@xxxxxxx> > Sent: 16 September 2020 10:07 > To: Jan Beulich <jbeulich@xxxxxxxx>; Oleksandr Tyshchenko > <olekstysh@xxxxxxxxx> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Oleksandr Tyshchenko > <oleksandr_tyshchenko@xxxxxxxx>; Paul Durrant > <paul@xxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>; Julien Grall > <jgrall@xxxxxxxxxx> > Subject: Re: [PATCH V1 14/16] xen/ioreq: Use guest_cmpxchg64() instead of > cmpxchg() > > > > On 16/09/2020 10:04, Jan Beulich wrote: > > On 10.09.2020 22:22, Oleksandr Tyshchenko wrote: > >> @@ -1325,7 +1327,7 @@ static int hvm_send_buffered_ioreq(struct > >> hvm_ioreq_server *s, ioreq_t *p) > >> > >> new.read_pointer = old.read_pointer - n * IOREQ_BUFFER_SLOT_NUM; > >> new.write_pointer = old.write_pointer - n * > >> IOREQ_BUFFER_SLOT_NUM; > >> - cmpxchg(&pg->ptrs.full, old.full, new.full); > >> + guest_cmpxchg64(d, &pg->ptrs.full, old.full, new.full); > > > > But the memory we're updating is shared with s->emulator, not with d, > > if I'm not mistaken. > > It is unfortunately shared with both s->emulator and d when using the > legacy interface. When using magic pages they should be punched out of the P2M by the time the code gets here, so the memory should not be guest-visible. Paul > > For Arm, there is no plan to support the legacy interface, so we should > s->emulator and we should be fully protected. > > Cheers, > > -- > Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |