[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [V1 PATCH 3/3] P2M error code propogation
>>> On 09.04.14 at 03:47, <mukesh.rathor@xxxxxxxxxx> wrote: > @@ -690,20 +689,22 @@ long arch_do_domctl( > } > else > { > + int tmp_rc; Blank line after declarations please. > printk(XENLOG_G_INFO > "memory_map:remove: dom%d gfn=%lx mfn=%lx nr=%lx\n", > d->domain_id, gfn, mfn, nr_mfns); > > if ( paging_mode_translate(d) ) > for ( i = 0; i < nr_mfns; i++ ) > - add |= !clear_mmio_p2m_entry(d, gfn + i); > - ret = iomem_deny_access(d, mfn, mfn + nr_mfns - 1); > - if ( !ret && add ) > - ret = -EIO; > + if ( (tmp_rc = clear_mmio_p2m_entry(d, gfn + i)) ) > + ret = tmp_rc; > + tmp_rc = iomem_deny_access(d, mfn, mfn + nr_mfns - 1); > + if ( !ret && tmp_rc ) > + ret = tmp_rc; > if ( ret && is_hardware_domain(current->domain) ) > printk(XENLOG_ERR > "memory_map: error %ld %s dom%d access to > [%lx,%lx]\n", > - ret, add ? "removing" : "denying", d->domain_id, > + ret, tmp_rc ? "denying" : "removing", d->domain_id, This isn't functionally identical to the old code. > @@ -753,7 +750,7 @@ set_mmio_p2m_entry(struct domain *d, unsigned long gfn, > mfn_t mfn) > struct p2m_domain *p2m = p2m_get_hostp2m(d); > > if ( !paging_mode_translate(d) ) > - return 0; > + return -EPERM; I think EPERM isn't quite right here, the (elsewhere) previously resulting EIO would seem more appropriate. Same further down obviously. > @@ -1401,11 +1398,8 @@ long p2m_set_mem_access(struct domain *d, unsigned > long pfn, uint32_t nr, > for ( pfn += start; nr > start; ++pfn ) > { > mfn = p2m->get_entry(p2m, pfn, &t, &_a, 0, NULL); > - if ( p2m->set_entry(p2m, pfn, mfn, PAGE_ORDER_4K, t, a) == 0 ) > - { > - rc = -ENOMEM; > + if ( (rc = p2m->set_entry(p2m, pfn, mfn, PAGE_ORDER_4K, t, a)) ) > break; I think constructs like this, namely to the somewhat odd "requirement" of needing to add an extra pair of parentheses around the assignment to avoid a compiler warning, would benefit from being split into assignment and separate if(). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |