[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V3 13/29] x86/vvtd: Set Interrupt Remapping Table Pointer through GCMD
On Thu, Oct 19, 2017 at 12:56:45PM +0100, Roger Pau Monné wrote: >On Thu, Sep 21, 2017 at 11:01:54PM -0400, Lan Tianyu wrote: >> From: Chao Gao <chao.gao@xxxxxxxxx> >> >> Software sets this field to set/update the interrupt remapping table pointer >> used by hardware. The interrupt remapping table pointer is specified through >> the Interrupt Remapping Table Address (IRTA_REG) register. >> >> This patch emulates this operation and adds some new fields in VVTD to track >> info (e.g. the table's gfn and max supported entries) of interrupt remapping >> table. >> >> Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> >> Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx> >> >> --- >> @@ -148,6 +205,18 @@ static int vvtd_write(struct vcpu *v, unsigned long >> addr, >> break; >> } >> } >> + else /* len == 8 */ >> + { >> + switch ( offset ) >> + { >> + case DMAR_IRTA_REG: >> + vvtd_set_reg_quad(vvtd, DMAR_IRTA_REG, val); > >I have kind of a generic comment regarding the handlers in general, >which I will just make here. Don't you need some kind of locking to >prevent concurrent read/write accesses to the registers? I think guest should be responsible to avoid concurrency. Xen only needs to not be fooled (crashed) by a malicious guest. > >Also the 'if' to handle different sized accesses to the same registers >seems quite cumbersome. I would think there's a better way to handle >this with a single switch statement. Will use only one switch statement and maybe add if-else for the cases which can be accessed with different size. Thanks chao _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |