$NetBSD: patch-ad,v 1.2 2006/10/19 22:57:13 bouyer Exp $

--- libxc/xc_domain.c.orig	2006-10-04 04:28:15.000000000 +0200
+++ libxc/xc_domain.c	2006-10-18 15:20:13.000000000 +0200
@@ -212,8 +212,10 @@
 {
     int ret = 0;
     DECLARE_SYSCTL;
+    caddr_t info_addr = (caddr_t)((u_long)info & ~0xfffUL);
+    u_long len = (max_domains*sizeof(xc_domaininfo_t) + 0xfffUL) & ~0xfffUL;
 
-    if ( mlock(info, max_domains*sizeof(xc_domaininfo_t)) != 0 )
+    if ( mlock(info_addr, len) != 0 )
         return -1;
 
     sysctl.cmd = XEN_SYSCTL_getdomaininfolist;
@@ -226,8 +228,7 @@
     else
         ret = sysctl.u.getdomaininfolist.num_domains;
 
-    if ( munlock(info, max_domains*sizeof(xc_domaininfo_t)) != 0 )
-        ret = -1;
+    (void)munlock(info_addr, len); /* XXX munlock fails; why ? */
 
     return ret;
 }
