|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
> +int domain_uart0_init(struct domain *d)
> +{
> + int rc;
> + if ( d->domain_id == 0 )
> + return 0;
Why? There's no equivalent gate on the MMIO handlers.
> + spin_lock_init(&d->arch.uart0.lock);
> + d->arch.uart0.idx = 0;
> +
> + rc = -ENOMEM;
> + d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
> + if ( !d->arch.uart0.buf )
> + goto out;
Just return ENOMEM here - the 'rc=foo; goto out' is overkill.
> +
> + rc = 0;
> +out:
> + return rc;
> +}
> +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
> +{
> + return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr <
> (UART0_BASE_ADDRESS+65536);
> +}
linewrap?
> +
> +static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
> +{
> + struct hsr_dabt dabt = info->dabt;
> + struct cpu_user_regs *regs = guest_cpu_user_regs();
> + uint32_t *r = ®s->r0 + dabt.reg;
> + int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
> +
Need to check dabt.size != 0 here too?
Tim.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |