Re: [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2020-11-20 Thread Jan Beulich
On 20.11.2020 15:37, Andrew Cooper wrote: > On 20/11/2020 14:32, Jan Beulich wrote: >> On 20.11.2020 15:19, Andrew Cooper wrote: >>> --- a/xen/drivers/passthrough/amd/iommu_guest.c >>> +++ b/xen/drivers/passthrough/amd/iommu_guest.c >>> @@ -68,11 +68,39 @@ static void guest_iommu_disable(struct gue

Re: [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2020-11-20 Thread Andrew Cooper
On 20/11/2020 14:32, Jan Beulich wrote: > On 20.11.2020 15:19, Andrew Cooper wrote: >> "amd-iommu: use a bitfield for DTE" renamed iommu_dte_set_guest_cr3()'s gcr3 >> parameter to gcr3_mfn but ended up with an off-by-PAGE_SIZE error when >> extracting bits from the address. >> >> First of all, get_

Re: [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2020-11-20 Thread Jan Beulich
On 20.11.2020 15:19, Andrew Cooper wrote: > "amd-iommu: use a bitfield for DTE" renamed iommu_dte_set_guest_cr3()'s gcr3 > parameter to gcr3_mfn but ended up with an off-by-PAGE_SIZE error when > extracting bits from the address. > > First of all, get_guest_cr3_from_dte() and iommu_dte_set_guest_c

[PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2020-11-20 Thread Andrew Cooper
"amd-iommu: use a bitfield for DTE" renamed iommu_dte_set_guest_cr3()'s gcr3 parameter to gcr3_mfn but ended up with an off-by-PAGE_SIZE error when extracting bits from the address. First of all, get_guest_cr3_from_dte() and iommu_dte_set_guest_cr3() are (almost) getters and setters for the same f

Re: [Xen-devel] [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2019-04-04 Thread Jan Beulich
>>> On 03.04.19 at 20:08, wrote: > +static uint64_t dte_get_gcr3_table(const struct amd_iommu_dte *dte) > { > return ((dte->gcr3_trp_51_31 << 31) | (dte->gcr3_trp_30_15 << 15) | I'm afraid there's another bug here: gcc, in its default mode at least, doesn't promote bit field values to their

Re: [Xen-devel] [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2019-04-04 Thread Paul Durrant
> -Original Message- > From: Andrew Cooper > Sent: 04 April 2019 11:46 > To: Paul Durrant ; Xen-devel > > Cc: Jan Beulich ; Wei Liu ; Roger Pau > Monne > ; Brian Woods > Subject: Re: [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901 > >

Re: [Xen-devel] [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2019-04-04 Thread Andrew Cooper
an Woods >> ; Paul >> Durrant >> Subject: [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901 >> >> "amd-iommu: use a bitfield for DTE" renamed iommu_dte_set_guest_cr3()'s gcr3 >> parameter to gcr3_mfn but ended up with an off-by-PAGE_SI

Re: [Xen-devel] [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2019-04-04 Thread Paul Durrant
> -Original Message- > From: Andrew Cooper [mailto:andrew.coop...@citrix.com] > Sent: 03 April 2019 19:08 > To: Xen-devel > Cc: Andrew Cooper ; Jan Beulich > ; Wei Liu > ; Roger Pau Monne ; Brian Woods > ; Paul > Durrant > Subject: [PATCH] amd-iommu: Fix

[Xen-devel] [PATCH] amd-iommu: Fix Guest CR3 Table following c/s 3a7947b6901

2019-04-03 Thread Andrew Cooper
"amd-iommu: use a bitfield for DTE" renamed iommu_dte_set_guest_cr3()'s gcr3 parameter to gcr3_mfn but ended up with an off-by-PAGE_SIZE error when extracting bits from the address. First of all, get_guest_cr3_from_dte() and iommu_dte_set_guest_cr3() are (almost) getters and setters for the same f