[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 08/16] x86/hvm: unify stdvga mmio intercept with standard mmio intercept
> -----Original Message----- > From: Jan Beulich [mailto:JBeulich@xxxxxxxx] > Sent: 08 July 2015 17:17 > To: Paul Durrant > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Keir (Xen.org) > Subject: Re: [PATCH v6 08/16] x86/hvm: unify stdvga mmio intercept with > standard mmio intercept > > >>> On 03.07.15 at 18:25, <paul.durrant@xxxxxxxxxx> wrote: > > -int stdvga_intercept_mmio(ioreq_t *p) > > +static bool_t stdvga_mem_accept(const struct hvm_io_handler *handler, > > + const ioreq_t *p) > > { > > - struct domain *d = current->domain; > > - struct hvm_hw_stdvga *s = &d->arch.hvm_domain.stdvga; > > - uint64_t start, end, count = p->count, size = p->size; > > - int buf = 0, rc; > > - > > - if ( p->df ) > > - { > > - start = (p->addr - (count - 1) * size); > > - end = p->addr + size; > > - } > > - else > > - { > > - start = p->addr; > > - end = p->addr + count * size; > > - } > > - > > - if ( (start < VGA_MEM_BASE) || (end > (VGA_MEM_BASE + > VGA_MEM_SIZE)) ) > > - return X86EMUL_UNHANDLEABLE; > > - > > - if ( p->size > 8 ) > > - { > > - gdprintk(XENLOG_WARNING, "invalid mmio size %d\n", (int)p->size); > > - return X86EMUL_UNHANDLEABLE; > > - } > > + struct hvm_hw_stdvga *s = ¤t->domain- > >arch.hvm_domain.stdvga; > > > > spin_lock(&s->lock); > > > > - if ( s->stdvga && s->cache ) > > + if ( !s->stdvga || > > + (p->addr < VGA_MEM_BASE) || > > + ((p->addr + p->size) > (VGA_MEM_BASE + VGA_MEM_SIZE)) ) > > + goto reject; > > I came here just to check whether you make use of the earlier > added hvm_mmio_{first,last}_byte(), but found that you're ignoring > p->df now altogether. That can't be right? > Yes, that's a mistake. I was forgetting that we still handle reads with count > 1. Paul > Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |