int steal_page(
struct domain *d, struct page_info *page, unsigned int memflags)
{
- return -1;
+ return -EOPNOTSUPP;
}
int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
page_to_mfn(page), d->domain_id,
owner ? owner->domain_id : DOMID_INVALID,
page->count_info, page->u.inuse.type_info);
- return -1;
+ return -EINVAL;
}
int steal_page(
const struct domain *owner = dom_xen;
if ( paging_mode_external(d) )
- return -1;
+ return -EOPNOTSUPP;
spin_lock(&d->page_alloc_lock);
page_to_mfn(page), d->domain_id,
owner ? owner->domain_id : DOMID_INVALID,
page->count_info, page->u.inuse.type_info);
- return -1;
+ return -EINVAL;
}
static int __do_update_va_mapping(
}
page = mfn_to_page(mfn);
- if ( steal_page(d, page, 0) < 0 )
+ if ( (rc = steal_page(d, page, 0)) < 0 )
{
put_gfn(d, gop.mfn);
- gop.status = GNTST_bad_page;
+ gop.status = rc == -EINVAL ? GNTST_bad_page : GNTST_general_error;
goto copyback;
}
page = mfn_to_page(mfn);
- if ( unlikely(steal_page(d, page, MEMF_no_refcount)) )
+ rc = steal_page(d, page, MEMF_no_refcount);
+ if ( unlikely(rc) )
{
put_gfn(d, gmfn + k);
- rc = -EINVAL;
goto fail;
}
/* Arch-specific portion of memory_op hypercall. */
long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-int steal_page(
- struct domain *d, struct page_info *page, unsigned int memflags);
-int donate_page(
- struct domain *d, struct page_info *page, unsigned int memflags);
-
#define domain_set_alloc_bitsize(d) ((void)0)
#define domain_clamp_alloc_bitsize(d, b) (b)
int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void));
int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
-int steal_page(
- struct domain *d, struct page_info *page, unsigned int memflags);
-int donate_page(
- struct domain *d, struct page_info *page, unsigned int memflags);
-
int map_ldt_shadow_page(unsigned int);
#define NIL(type) ((type *)-sizeof(type))
union xen_add_to_physmap_batch_extra extra,
unsigned long idx, gfn_t gfn);
-/* Returns 0 on success, or negative on error. */
+/* Return 0 on success, or negative on error. */
int __must_check guest_remove_page(struct domain *d, unsigned long gmfn);
+int __must_check steal_page(struct domain *d, struct page_info *page,
+ unsigned int memflags);
+int __must_check donate_page(struct domain *d, struct page_info *page,
+ unsigned int memflags);
#define RAM_TYPE_CONVENTIONAL 0x00000001
#define RAM_TYPE_RESERVED 0x00000002