int arch_gnttab_init(unsigned long nr_shared) { if (!xen_pv_domain()) return 0; return arch_gnttab_valloc(&gnttab_shared_vm_area, nr_shared); }
int arch_gnttab_init(unsigned long nr_shared, unsigned long nr_status) { int ret; if (!xen_pv_domain()) return 0; ret = arch_gnttab_valloc(&gnttab_shared_vm_area, nr_shared); if (ret < 0) return ret; /* * Always allocate the space for the status frames in case * we're migrated to a host with V2 support. */ ret = arch_gnttab_valloc(&gnttab_status_vm_area, nr_status); if (ret < 0) goto err; return 0; err: arch_gnttab_vfree(&gnttab_shared_vm_area); return -ENOMEM; }