Remove unused XENMEM_translate_pfn_list.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 14 Jan 2009 11:15:01 +0000 (11:15 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 14 Jan 2009 11:15:01 +0000 (11:15 +0000)
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@citrix.com>
tools/libxc/xc_domain.c
tools/libxc/xenctrl.h
xen/arch/ia64/tools/p2m_foreign/Makefile [deleted file]
xen/arch/ia64/tools/p2m_foreign/p2m_foreign.c [deleted file]
xen/common/compat/memory.c
xen/common/memory.c
xen/include/public/memory.h
xen/include/xlat.lst
xen/include/xsm/xsm.h
xen/xsm/dummy.c
xen/xsm/flask/hooks.c

index af43b48e57575583e2d2a3fc5128e54e289ed43f..a5f59e6f6a67cd7e1bad8c9d494be80273f0d5c6 100644 (file)
@@ -537,33 +537,6 @@ int xc_domain_memory_populate_physmap(int xc_handle,
     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;
-    }
-
-    return err;
-}
-
 static int xc_domain_memory_pod_target(int xc_handle,
                                        int op,
                                        uint32_t domid,
index 2652d496caf27173e8e61b0fd2260f504d63a8ce..cebe79813bc3ae8504383bcb018ddc942a720715 100644 (file)
@@ -628,12 +628,6 @@ int xc_domain_memory_populate_physmap(int xc_handle,
                                       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 --git a/xen/arch/ia64/tools/p2m_foreign/Makefile b/xen/arch/ia64/tools/p2m_foreign/Makefile
deleted file mode 100644 (file)
index 716d675..0000000
+++ /dev/null
@@ -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 --git a/xen/arch/ia64/tools/p2m_foreign/p2m_foreign.c b/xen/arch/ia64/tools/p2m_foreign/p2m_foreign.c
deleted file mode 100644 (file)
index 9b94d7b..0000000
+++ /dev/null
@@ -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;
-}
index 17519f5688fee843827692d9847be795e638b04c..779cad9f2609c8bdaee4b7b5986d5332d95439cc 100644 (file)
@@ -19,12 +19,10 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
             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);
@@ -182,52 +180,6 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
             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:
             return compat_arch_memory_op(cmd, compat);
         }
@@ -335,27 +287,6 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
         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;
index bf10bbbfd21b03cdf37a2d7fe9922b164308ebba..8f42a1a30fd82e6679ffbae11b21be9da845b0ce 100644 (file)
@@ -215,72 +215,6 @@ static void decrease_reservation(struct memop_args *a)
     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_GUEST_HANDLE(void) arg)
     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;
@@ -630,17 +564,6 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
 
         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:
         rc = arch_memory_op(op, arg);
         break;
index 5ff7ef444710425d27ec874e68a75e61020d1e5e..5ba7d33eb9080788b37b208bc8007c5078e61363 100644 (file)
@@ -235,29 +235,8 @@ struct xen_remove_from_physmap {
 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
index 0bfa78f6c64e2ce3d217ebb385ac8a669607f98d..c780bfe02a5ab308f36839cb611c38ae54707e80 100644 (file)
@@ -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
index 2f54b22626547dff2cf87c009f89223fdbbfdcce..6f2d2330851edbed2bd2e571aa40c051e4b966e1 100644 (file)
@@ -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_evtchn (struct evtchn *chn)
     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)
 {
index d14172e41aedae604aab9ef9b0bb7a11c315da30..9e94724e21e245aa55473e0eccc8e786b01343d4 100644 (file)
@@ -180,11 +180,6 @@ 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;
-}
-
 static int dummy_memory_adjust_reservation (struct domain *d1,
                                                             struct domain *d2)
 {
@@ -522,7 +517,6 @@ void xsm_fixup_ops (struct xsm_operations *ops)
     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);
index 0771e3f1a8e5d63951e5405a5e397500cfab3fa3..527a83c874f6f30ab12bd377bdc1898b3d28eb6f 100644 (file)
@@ -367,20 +367,6 @@ static int get_mfn_sid(unsigned long mfn, u32 *sid)
     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)
 {
     return domain_has_perm(d1, d2, SECCLASS_MMU, MMU__ADJUST);
@@ -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,