From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kip Macy Subject: [PATCH] disable writable pagetables on FreeBSD Date: Fri, 29 Apr 2005 19:30:46 -0700 Message-ID: Reply-To: Kip Macy Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel List-Id: xen-devel@lists.xenproject.org Presumably as a result of recent changes, FreeBSD no longer works with writable page tables. In the short-term I'm more interested in functionality than performance. This patch disables them and fixes a compile issue. # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/04/29 19:26:00-07:00 kmacy@curly.lab.netapp.com=20 # disable writable pagetables + compile fix=20 # Signed-off-by: Kip Macy #=20 # freebsd-5.3-xen-sparse/i386-xen/include/xenpmap.h # 2005/04/29 19:25:58-07:00 kmacy@curly.lab.netapp.com +5 -3 # disable writable pagetables + compile fix #=20 diff -Nru a/freebsd-5.3-xen-sparse/i386-xen/include/xenpmap.h b/freebsd-5.3-xen-sparse/i386-xen/include/xenpmap.h --- a/freebsd-5.3-xen-sparse/i386-xen/include/xenpmap.h 2005-04-28 19:30:44 -07:00 +++ b/freebsd-5.3-xen-sparse/i386-xen/include/xenpmap.h 2005-04-28 19:30:44 -07:00 @@ -59,7 +59,9 @@ #define PMAP_DEC_REF_PAGE(a) #endif =20 +#if 0 #define WRITABLE_PAGETABLES +#endif #define ALWAYS_SYNC 0 =20 #ifdef PT_DEBUG @@ -118,18 +120,18 @@ =20 #define PT_SET_VA(_ptp,_npte,sync) do { \ PMAP_REF((_ptp), xpmap_ptom(_npte)); \ - xen_queue_pt_update((pt_entry_t *)vtomach(_ptp), \ + xen_queue_pt_update(vtomach(_ptp), \ xpmap_ptom(_npte)); \ if (sync || ALWAYS_SYNC) xen_flush_queue(); \ } while (/*CONSTCOND*/0) #define PT_SET_VA_MA(_ptp,_npte,sync) do { \ PMAP_REF((_ptp), (_npte)); \ - xen_queue_pt_update((pt_entry_t *)vtomach(_ptp), _npte);\ + xen_queue_pt_update(vtomach(_ptp), _npte); \ if (sync || ALWAYS_SYNC) xen_flush_queue(); \ } while (/*CONSTCOND*/0) #define PT_CLEAR_VA(_ptp, sync) do { \ PMAP_REF((pt_entry_t *)(_ptp), 0); \ - xen_queue_pt_update((pt_entry_t *)vtomach(_ptp), 0); \ + xen_queue_pt_update(vtomach(_ptp), 0); \ if (sync || ALWAYS_SYNC) \ xen_flush_queue(); \ } while (/*CONSTCOND*/0)