[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Remove unused XENMEM_translate_pfn_list.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1231931701 0 # Node ID 2737293c761ef32092671b9c320ade3c8ec35b68 # Parent 3fb43f23f64ccc1687d1dc348a9eb454397d4887 Remove unused XENMEM_translate_pfn_list. Never used by a guest OS (except in IA64 hcall translation layer) and obsoleted in the tools for ages. Recent usage by qemu-dm is now removed. Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> --- xen/arch/ia64/tools/p2m_foreign/Makefile | 47 ----- xen/arch/ia64/tools/p2m_foreign/p2m_foreign.c | 233 -------------------------- tools/libxc/xc_domain.c | 27 --- tools/libxc/xenctrl.h | 6 xen/common/compat/memory.c | 69 ------- xen/common/memory.c | 79 -------- xen/include/public/memory.h | 25 -- xen/include/xlat.lst | 1 xen/include/xsm/xsm.h | 6 xen/xsm/dummy.c | 6 xen/xsm/flask/hooks.c | 15 - 11 files changed, 3 insertions(+), 511 deletions(-) diff -r 3fb43f23f64c -r 2737293c761e tools/libxc/xc_domain.c --- a/tools/libxc/xc_domain.c Wed Jan 14 10:56:18 2009 +0000 +++ b/tools/libxc/xc_domain.c Wed Jan 14 11:15:01 2009 +0000 @@ -531,33 +531,6 @@ int xc_domain_memory_populate_physmap(in DPRINTF("Failed allocation for dom %d: %ld extents of order %d\n", domid, nr_extents, extent_order); errno = EBUSY; - err = -1; - } - - return err; -} - -int xc_domain_memory_translate_gpfn_list(int xc_handle, - uint32_t domid, - unsigned long nr_gpfns, - xen_pfn_t *gpfn_list, - xen_pfn_t *mfn_list) -{ - int err; - struct xen_translate_gpfn_list translate_gpfn_list = { - .domid = domid, - .nr_gpfns = nr_gpfns, - }; - set_xen_guest_handle(translate_gpfn_list.gpfn_list, gpfn_list); - set_xen_guest_handle(translate_gpfn_list.mfn_list, mfn_list); - - err = xc_memory_op(xc_handle, XENMEM_translate_gpfn_list, &translate_gpfn_list); - - if ( err != 0 ) - { - DPRINTF("Failed translation for dom %d (%ld PFNs)\n", - domid, nr_gpfns); - errno = -err; err = -1; } diff -r 3fb43f23f64c -r 2737293c761e tools/libxc/xenctrl.h --- a/tools/libxc/xenctrl.h Wed Jan 14 10:56:18 2009 +0000 +++ b/tools/libxc/xenctrl.h Wed Jan 14 11:15:01 2009 +0000 @@ -628,12 +628,6 @@ int xc_domain_memory_populate_physmap(in unsigned int mem_flags, xen_pfn_t *extent_start); -int xc_domain_memory_translate_gpfn_list(int xc_handle, - uint32_t domid, - unsigned long nr_gpfns, - xen_pfn_t *gpfn_list, - xen_pfn_t *mfn_list); - int xc_domain_memory_set_pod_target(int xc_handle, uint32_t domid, uint64_t target_pages, diff -r 3fb43f23f64c -r 2737293c761e xen/arch/ia64/tools/p2m_foreign/Makefile --- a/xen/arch/ia64/tools/p2m_foreign/Makefile Wed Jan 14 10:56:18 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -# -# xen/arch/ia64/tools/p2m_foreign -# -# Copyright (c) 2006 Isaku Yamahata <yamahata at valinux co jp> -# VA Linux Systems Japan K.K. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -XEN_ROOT = ../../../../.. -include $(XEN_ROOT)/tools/Rules.mk - -CFLAGS += -Werror -ggdb3 -CFLAGS += -I$(XEN_LIBXC) -I$(XEN_XENSTORE) - -PROGRAMS = p2m_foreign -LDLIBS = -L$(XEN_LIBXC) -L$(XEN_XENSTORE) -lxenguest -lxenctrl - -.PHONY: all -all: build - -.PHONY: build -build: $(PROGRAMS) - -$(PROGRAMS): %: %.o - $(CC) $(CFLAGS) $^ $(LDLIBS) -o $@ - - -.PHONY: install -install: - -.PHONY: clean -clean: - $(RM) *.o $(PROGRAMS) - $(RM) $(DEPS) - --include $(DEPS) diff -r 3fb43f23f64c -r 2737293c761e xen/arch/ia64/tools/p2m_foreign/p2m_foreign.c --- a/xen/arch/ia64/tools/p2m_foreign/p2m_foreign.c Wed Jan 14 10:56:18 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* - * Foreign p2m exposure test. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Copyright (c) 2007 Isaku Yamahata <yamahata at valinux co jp> - * VA Linux Systems Japan K.K. - * - */ - -#include <sys/mman.h> -#include <err.h> -#include <errno.h> -#include <assert.h> - -#include <xc_private.h> -#include <xenctrl.h> -#include <xenguest.h> -#include <xc_efi.h> -#include <ia64/xc_ia64.h> - -#if 1 -# define printd(fmt, args...) printf(fmt, ##args) -#else -# define printd(fmt, args...) ((void)0) -#endif - -/* xc_memory_op() in xc_private.c doesn't support translate_gpfn_list */ -static int -__xc_memory_op(int xc_handle, int cmd, void *arg) -{ - DECLARE_HYPERCALL; - struct xen_translate_gpfn_list* translate = arg; - - xen_ulong_t* gpfns; - xen_ulong_t* mfns; - size_t len; - - long ret = -EINVAL; - - hypercall.op = __HYPERVISOR_memory_op; - hypercall.arg[0] = (unsigned long)cmd; - hypercall.arg[1] = (unsigned long)arg; - - assert(cmd == XENMEM_translate_gpfn_list); - - get_xen_guest_handle(gpfns, translate->gpfn_list); - get_xen_guest_handle(mfns, translate->mfn_list); - len = sizeof(gpfns[0]) * translate->nr_gpfns; - if (lock_pages(translate, sizeof(*translate)) || - lock_pages(gpfns, len) || - lock_pages(mfns, len)) - goto out; - - ret = do_xen_hypercall(xc_handle, &hypercall); - -out: - unlock_pages(mfns, len); - unlock_pages(gpfns, len); - unlock_pages(translate, sizeof(*translate)); - - return ret; -} - -int -xc_translate_gpfn_list(int xc_handle, uint32_t domid, xen_ulong_t nr_gpfns, - xen_ulong_t* gpfns, xen_ulong_t* mfns) -{ - struct xen_translate_gpfn_list translate = { - .domid = domid, - .nr_gpfns = nr_gpfns, - }; - set_xen_guest_handle(translate.gpfn_list, gpfns); - set_xen_guest_handle(translate.mfn_list, mfns); - - return __xc_memory_op(xc_handle, - XENMEM_translate_gpfn_list, &translate); -} - -int -main(int argc, char** argv) -{ - uint32_t domid; - int xc_handle; - - xc_dominfo_t info; - shared_info_t* shinfo; - - unsigned long map_size; - xen_ia64_memmap_info_t* memmap_info; - struct xen_ia64_p2m_table p2m_table; - - char* p; - char* start; - char* end; - xen_ulong_t nr_gpfns; - - xen_ulong_t* gpfns; - xen_ulong_t* mfns; - - unsigned long i; - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s <domid>", argv[0]); - domid = atol(argv[1]); - - printd("xc_interface_open()\n"); - xc_handle = xc_interface_open(); - if (xc_handle < 0) - errx(EXIT_FAILURE, "can't open control interface"); - - printd("xc_domain_getinfo\n"); - if (xc_domain_getinfo(xc_handle, domid, 1, &info) != 1) - errx(EXIT_FAILURE, "Could not get info for domain"); - - - printd("shared info\n"); - shinfo = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, - PROT_READ, info.shared_info_frame); - if (shinfo == NULL) - errx(EXIT_FAILURE, "can't map shared info"); - - printd("memmap_info\n"); - map_size = PAGE_SIZE * shinfo->arch.memmap_info_num_pages; - memmap_info = xc_map_foreign_range(xc_handle, info.domid, - map_size, PROT_READ, - shinfo->arch.memmap_info_pfn); - if (memmap_info == NULL) - errx(EXIT_FAILURE, "can't map memmap_info"); - -#if 1 - start = (char*)&memmap_info->memdesc; - end = start + memmap_info->efi_memmap_size; - i = 0; - for (p = start; p < end; p += memmap_info->efi_memdesc_size) { - efi_memory_desc_t* md = (efi_memory_desc_t*)p; - printd("%ld [0x%lx, 0x%lx) 0x%lx pages\n", - i, md->phys_addr, - md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT), - md->num_pages >> (PAGE_SHIFT - EFI_PAGE_SHIFT)); - i++; - } -#endif - - - printd("p2m map\n"); - if (xc_ia64_p2m_map(&p2m_table, xc_handle, domid, memmap_info, 0) < 0) - errx(EXIT_FAILURE, "can't map foreign p2m table"); - printd("p2m map done\n"); - - start = (char*)&memmap_info->memdesc; - end = start + memmap_info->efi_memmap_size; - nr_gpfns = 0; - i = 0; - for (p = start; p < end; p += memmap_info->efi_memdesc_size) { - efi_memory_desc_t* md = (efi_memory_desc_t*)p; - if ( md->type != EFI_CONVENTIONAL_MEMORY || - md->attribute != EFI_MEMORY_WB || - md->num_pages == 0 ) - continue; - - printd("%ld [0x%lx, 0x%lx) 0x%lx pages\n", - i, md->phys_addr, - md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT), - md->num_pages >> (PAGE_SHIFT - EFI_PAGE_SHIFT)); - nr_gpfns += md->num_pages >> (PAGE_SHIFT - EFI_PAGE_SHIFT); - i++; - } - - printd("total 0x%lx gpfns\n", nr_gpfns); - gpfns = malloc(sizeof(gpfns[0]) * nr_gpfns); - mfns = malloc(sizeof(mfns[0]) * nr_gpfns); - if (gpfns == NULL || mfns == NULL) - err(EXIT_FAILURE, "can't allocate memory for gpfns/mfns"); - - i = 0; - for (p = start; p < end; p += memmap_info->efi_memdesc_size) { - efi_memory_desc_t* md = (efi_memory_desc_t*)p; - unsigned long j; - if ( md->type != EFI_CONVENTIONAL_MEMORY || - md->attribute != EFI_MEMORY_WB || - md->num_pages == 0 ) - continue; - - for (j = 0; - j < md->num_pages >> (PAGE_SHIFT - EFI_PAGE_SHIFT); - j++) { - gpfns[i] = (md->phys_addr >> PAGE_SHIFT) + j; - i++; - } - } - for (i = 0; i < nr_gpfns; i++) - mfns[i] = INVALID_MFN; - - printd("issue translate gpfn list hypercall. " - "this may take a while\n"); - if (xc_translate_gpfn_list(xc_handle, - domid, nr_gpfns, gpfns, mfns) < 0) - err(EXIT_FAILURE, "translate gpfn list hypercall failure"); - printd("translate gpfn list hypercall done\n"); - - printd("checking p2m table\n"); - for (i = 0; i < nr_gpfns; i++) { - unsigned long mfn_by_translated = mfns[i]; - unsigned long mfn_by_p2m = - xc_ia64_p2m_mfn(&p2m_table, gpfns[i]); - if (mfn_by_translated != mfn_by_p2m && - !(mfn_by_translated == 0 && mfn_by_p2m == INVALID_MFN)) { - printf("ERROR! i 0x%lx gpfn " - "0x%lx trnslated 0x%lx p2m 0x%lx\n", - i, gpfns[i], mfn_by_translated, mfn_by_p2m); - } - } - printd("checking p2m table done\n"); - - xc_ia64_p2m_unmap(&p2m_table); - munmap(memmap_info, map_size); - munmap(shinfo, PAGE_SIZE); - - return EXIT_SUCCESS; -} diff -r 3fb43f23f64c -r 2737293c761e xen/common/compat/memory.c --- a/xen/common/compat/memory.c Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/common/compat/memory.c Wed Jan 14 11:15:01 2009 +0000 @@ -19,12 +19,10 @@ int compat_memory_op(unsigned int cmd, X XEN_GUEST_HANDLE(void) hnd; struct xen_memory_reservation *rsrv; struct xen_memory_exchange *xchg; - struct xen_translate_gpfn_list *xlat; } nat; union { struct compat_memory_reservation rsrv; struct compat_memory_exchange xchg; - struct compat_translate_gpfn_list xlat; } cmp; set_xen_guest_handle(nat.hnd, (void *)COMPAT_ARG_XLAT_VIRT_BASE); @@ -180,52 +178,6 @@ int compat_memory_op(unsigned int cmd, X } case XENMEM_maximum_ram_page: nat.hnd = compat; - break; - - case XENMEM_translate_gpfn_list: - if ( copy_from_guest(&cmp.xlat, compat, 1) ) - return -EFAULT; - - /* Is size too large for us to encode a continuation? */ - if ( cmp.xlat.nr_gpfns > (UINT_MAX >> MEMOP_EXTENT_SHIFT) ) - return -EINVAL; - - if ( !compat_handle_okay(cmp.xlat.gpfn_list, cmp.xlat.nr_gpfns) || - !compat_handle_okay(cmp.xlat.mfn_list, cmp.xlat.nr_gpfns) ) - return -EFAULT; - - end_extent = start_extent + (COMPAT_ARG_XLAT_SIZE - sizeof(*nat.xlat)) / - sizeof(*space); - if ( end_extent > cmp.xlat.nr_gpfns ) - end_extent = cmp.xlat.nr_gpfns; - - space = (xen_pfn_t *)(nat.xlat + 1); - /* Code below depends upon .gpfn_list preceding .mfn_list. */ - BUILD_BUG_ON(offsetof(xen_translate_gpfn_list_t, gpfn_list) > offsetof(xen_translate_gpfn_list_t, mfn_list)); -#define XLAT_translate_gpfn_list_HNDL_gpfn_list(_d_, _s_) \ - do \ - { \ - set_xen_guest_handle((_d_)->gpfn_list, space - start_extent); \ - for ( i = start_extent; i < end_extent; ++i ) \ - { \ - compat_pfn_t pfn; \ - if ( __copy_from_compat_offset(&pfn, (_s_)->gpfn_list, i, 1) ) \ - return -EFAULT; \ - *space++ = pfn; \ - } \ - } while (0) -#define XLAT_translate_gpfn_list_HNDL_mfn_list(_d_, _s_) \ - (_d_)->mfn_list = (_d_)->gpfn_list - XLAT_translate_gpfn_list(nat.xlat, &cmp.xlat); -#undef XLAT_translate_gpfn_list_HNDL_mfn_list -#undef XLAT_translate_gpfn_list_HNDL_gpfn_list - - if ( end_extent < cmp.xlat.nr_gpfns ) - { - nat.xlat->nr_gpfns = end_extent; - ++split; - } - break; default: @@ -335,27 +287,6 @@ int compat_memory_op(unsigned int cmd, X case XENMEM_maximum_gpfn: break; - case XENMEM_translate_gpfn_list: - if ( split < 0 ) - end_extent = cmd >> MEMOP_EXTENT_SHIFT; - else - BUG_ON(rc); - - for ( ; start_extent < end_extent; ++start_extent ) - { - compat_pfn_t pfn = nat.xlat->mfn_list.p[start_extent]; - - BUG_ON(pfn != nat.xlat->mfn_list.p[start_extent]); - if ( __copy_to_compat_offset(cmp.xlat.mfn_list, start_extent, &pfn, 1) ) - { - if ( split < 0 ) - /* Cannot cancel the continuation... */ - domain_crash(current->domain); - return -EFAULT; - } - } - break; - default: domain_crash(current->domain); split = 0; diff -r 3fb43f23f64c -r 2737293c761e xen/common/memory.c --- a/xen/common/memory.c Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/common/memory.c Wed Jan 14 11:15:01 2009 +0000 @@ -215,72 +215,6 @@ static void decrease_reservation(struct a->nr_done = i; } -static long translate_gpfn_list( - XEN_GUEST_HANDLE(xen_translate_gpfn_list_t) uop, unsigned long *progress) -{ - struct xen_translate_gpfn_list op; - unsigned long i; - xen_pfn_t gpfn; - xen_pfn_t mfn; - struct domain *d; - int rc; - - if ( copy_from_guest(&op, uop, 1) ) - return -EFAULT; - - /* Is size too large for us to encode a continuation? */ - if ( op.nr_gpfns > (ULONG_MAX >> MEMOP_EXTENT_SHIFT) ) - return -EINVAL; - - if ( !guest_handle_subrange_okay(op.gpfn_list, *progress, op.nr_gpfns-1) || - !guest_handle_subrange_okay(op.mfn_list, *progress, op.nr_gpfns-1) ) - return -EFAULT; - - rc = rcu_lock_target_domain_by_id(op.domid, &d); - if ( rc ) - return rc; - - if ( !paging_mode_translate(d) ) - { - rcu_unlock_domain(d); - return -EINVAL; - } - - for ( i = *progress; i < op.nr_gpfns; i++ ) - { - if ( hypercall_preempt_check() ) - { - rcu_unlock_domain(d); - *progress = i; - return -EAGAIN; - } - - if ( unlikely(__copy_from_guest_offset(&gpfn, op.gpfn_list, i, 1)) ) - { - rcu_unlock_domain(d); - return -EFAULT; - } - - mfn = gmfn_to_mfn(d, gpfn); - - rc = xsm_translate_gpfn_list(current->domain, mfn); - if ( rc ) - { - rcu_unlock_domain(d); - return rc; - } - - if ( unlikely(__copy_to_guest_offset(op.mfn_list, i, &mfn, 1)) ) - { - rcu_unlock_domain(d); - return -EFAULT; - } - } - - rcu_unlock_domain(d); - return 0; -} - static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg) { struct xen_memory_exchange exch; @@ -494,7 +428,7 @@ long do_memory_op(unsigned long cmd, XEN struct domain *d; int rc, op; unsigned int address_bits; - unsigned long start_extent, progress; + unsigned long start_extent; struct xen_memory_reservation reservation; struct memop_args args; domid_t domid; @@ -628,17 +562,6 @@ long do_memory_op(unsigned long cmd, XEN rcu_unlock_domain(d); - break; - - case XENMEM_translate_gpfn_list: - progress = cmd >> MEMOP_EXTENT_SHIFT; - rc = translate_gpfn_list( - guest_handle_cast(arg, xen_translate_gpfn_list_t), - &progress); - if ( rc == -EAGAIN ) - return hypercall_create_continuation( - __HYPERVISOR_memory_op, "lh", - op | (progress << MEMOP_EXTENT_SHIFT), arg); break; default: diff -r 3fb43f23f64c -r 2737293c761e xen/include/public/memory.h --- a/xen/include/public/memory.h Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/include/public/memory.h Wed Jan 14 11:15:01 2009 +0000 @@ -235,29 +235,8 @@ typedef struct xen_remove_from_physmap x typedef struct xen_remove_from_physmap xen_remove_from_physmap_t; DEFINE_XEN_GUEST_HANDLE(xen_remove_from_physmap_t); -/* - * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error - * code on failure. This call only works for auto-translated guests. - */ -#define XENMEM_translate_gpfn_list 8 -struct xen_translate_gpfn_list { - /* Which domain to translate for? */ - domid_t domid; - - /* Length of list. */ - xen_ulong_t nr_gpfns; - - /* List of GPFNs to translate. */ - XEN_GUEST_HANDLE(xen_pfn_t) gpfn_list; - - /* - * Output list to contain MFN translations. May be the same as the input - * list (in which case each input GPFN is overwritten with the output MFN). - */ - XEN_GUEST_HANDLE(xen_pfn_t) mfn_list; -}; -typedef struct xen_translate_gpfn_list xen_translate_gpfn_list_t; -DEFINE_XEN_GUEST_HANDLE(xen_translate_gpfn_list_t); +/*** REMOVED ***/ +/*#define XENMEM_translate_gpfn_list 8*/ /* * Returns the pseudo-physical memory map as it was when the domain diff -r 3fb43f23f64c -r 2737293c761e xen/include/xlat.lst --- a/xen/include/xlat.lst Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/include/xlat.lst Wed Jan 14 11:15:01 2009 +0000 @@ -39,7 +39,6 @@ ! memory_map memory.h ! memory_reservation memory.h ! pod_target memory.h -! translate_gpfn_list memory.h ! sched_poll sched.h ? sched_remote_shutdown sched.h ? sched_shutdown sched.h diff -r 3fb43f23f64c -r 2737293c761e xen/include/xsm/xsm.h --- a/xen/include/xsm/xsm.h Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/include/xsm/xsm.h Wed Jan 14 11:15:01 2009 +0000 @@ -96,7 +96,6 @@ struct xsm_operations { int (*alloc_security_evtchn) (struct evtchn *chn); void (*free_security_evtchn) (struct evtchn *chn); - int (*translate_gpfn_list) (struct domain *d, unsigned long mfn); int (*memory_adjust_reservation) (struct domain *d1, struct domain *d2); int (*memory_stat_reservation) (struct domain *d1, struct domain *d2); int (*memory_pin_page) (struct domain *d, struct page_info *page); @@ -367,11 +366,6 @@ static inline void xsm_free_security_evt xsm_call(free_security_evtchn(chn)); } -static inline int xsm_translate_gpfn_list (struct domain *d, unsigned long mfn) -{ - return xsm_call(translate_gpfn_list(d, mfn)); -} - static inline int xsm_memory_adjust_reservation (struct domain *d1, struct domain *d2) { diff -r 3fb43f23f64c -r 2737293c761e xen/xsm/dummy.c --- a/xen/xsm/dummy.c Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/xsm/dummy.c Wed Jan 14 11:15:01 2009 +0000 @@ -176,11 +176,6 @@ static int dummy_grant_copy (struct doma } static int dummy_grant_query_size (struct domain *d1, struct domain *d2) -{ - return 0; -} - -static int dummy_translate_gpfn_list (struct domain *d, unsigned long mfn) { return 0; } @@ -522,7 +517,6 @@ void xsm_fixup_ops (struct xsm_operation set_to_dummy_if_null(ops, alloc_security_evtchn); set_to_dummy_if_null(ops, free_security_evtchn); - set_to_dummy_if_null(ops, translate_gpfn_list); set_to_dummy_if_null(ops, memory_adjust_reservation); set_to_dummy_if_null(ops, memory_stat_reservation); set_to_dummy_if_null(ops, memory_pin_page); diff -r 3fb43f23f64c -r 2737293c761e xen/xsm/flask/hooks.c --- a/xen/xsm/flask/hooks.c Wed Jan 14 10:56:18 2009 +0000 +++ b/xen/xsm/flask/hooks.c Wed Jan 14 11:15:01 2009 +0000 @@ -365,20 +365,6 @@ static int get_mfn_sid(unsigned long mfn } return rc; -} - -static int flask_translate_gpfn_list(struct domain *d, unsigned long mfn) -{ - int rc = 0; - u32 sid; - struct domain_security_struct *dsec; - dsec = d->ssid; - - rc = get_mfn_sid(mfn, &sid); - if ( rc ) - return rc; - - return avc_has_perm(dsec->sid, sid, SECCLASS_MMU, MMU__TRANSLATEGP, NULL); } static int flask_memory_adjust_reservation(struct domain *d1, struct domain *d2) @@ -1280,7 +1266,6 @@ static struct xsm_operations flask_ops = .alloc_security_evtchn = flask_alloc_security_evtchn, .free_security_evtchn = flask_free_security_evtchn, - .translate_gpfn_list = flask_translate_gpfn_list, .memory_adjust_reservation = flask_memory_adjust_reservation, .memory_stat_reservation = flask_memory_stat_reservation, .memory_pin_page = flask_memory_pin_page, _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |