xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* Error ignored in xc_map_foreign_pages
@ 2014-02-13  2:53 Mukesh Rathor
  2014-02-13  9:57 ` Jan Beulich
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Mukesh Rathor @ 2014-02-13  2:53 UTC (permalink / raw)
  To: Xen-devel@lists.xensource.com; +Cc: Julien Grall, Ian Campbell, Jan Beulich

It appears that xc_map_foreign_pages() handles return incorrectly :

    res = xc_map_foreign_bulk(xch, dom, prot, arr, err, num);
    if (res) {
        for (i = 0; i < num; i++) {
            if (err[i]) {
                errno = -err[i];
                munmap(res, num * PAGE_SIZE);
                res = NULL;
                break;
            }
        }
    }

The add to_physmap batch'd interface  actually will store errors
in the err array, and return 0 unless EFAULT or something like that.
See xenmem_add_to_physmap_batch(). The case I'm looking at, xentrace
calls here to map page which fails, but the return is 0 as the error is
succesfully copied by xen. But the error is missed above since res is 0.
xentrace does something again, and that causes xen crash. 

It appears the fix could be just removing the check for res above...

    res = xc_map_foreign_bulk(xch, dom, prot, arr, err, num);
    for (i = 0; i < num; i++) {
        if (err[i]) {
         .....

What do you guys think?

thanks,
Mukesh

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-02-13 13:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-13  2:53 Error ignored in xc_map_foreign_pages Mukesh Rathor
2014-02-13  9:57 ` Jan Beulich
2014-02-13 10:00 ` Ian Campbell
2014-02-13 13:53   ` Andres Lagar-Cavilla
2014-02-13 11:03 ` David Vrabel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).