[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()
On 16/09/2020 10:09, Paul Durrant wrote: -----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. Can you point me to the code that doing this? Cheers, -- Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |