> -----Original Message----- > From: Xen-devel <xen-devel-boun...@lists.xenproject.org> On Behalf Of > Oleksandr Tyshchenko > Sent: 12 January 2021 21:52 > To: xen-devel@lists.xenproject.org > Cc: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com>; Paul Durrant > <p...@xen.org>; Julien Grall > <jul...@xen.org>; Stefano Stabellini <sstabell...@kernel.org>; Julien Grall > <julien.gr...@arm.com> > Subject: [PATCH V4 13/24] xen/ioreq: Use guest_cmpxchg64() instead of > cmpxchg() > > From: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com> > > The cmpxchg() in ioreq_send_buffered() operates on memory shared > with the emulator domain (and the target domain if the legacy > interface is used). > > In order to be on the safe side we need to switch > to guest_cmpxchg64() to prevent a domain to DoS Xen on Arm. > > As there is no plan to support the legacy interface on Arm, > we will have a page to be mapped in a single domain at the time, > so we can use s->emulator in guest_cmpxchg64() safely. > > Thankfully the only user of the legacy interface is x86 so far > and there is not concern regarding the atomics operations. > > Please note, that the legacy interface *must* not be used on Arm > without revisiting the code. > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com> > Acked-by: Stefano Stabellini <sstabell...@kernel.org> > CC: Julien Grall <julien.gr...@arm.com> > [On Arm only] > Tested-by: Wei Chen <wei.c...@arm.com>
Reviewed-by: Paul Durrant <p...@xen.org>