WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Enable region0 virtual addresss in vcpu_translate (but s

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Enable region0 virtual addresss in vcpu_translate (but still broken elsewhere)
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 11 Nov 2005 16:26:07 +0000
Delivery-date: Fri, 11 Nov 2005 16:26:27 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID d3594980a8f119712e808aa3d96ffd162e683671
# Parent  7d81d6b8c302b10d205e3b6fa981294fd4e611de
Enable region0 virtual addresss in vcpu_translate (but still broken elsewhere)
Signed-off by: Dan Magenheimer <dan.magenheimer@xxxxxx>

diff -r 7d81d6b8c302 -r d3594980a8f1 xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c  Tue Nov  8 18:15:55 2005
+++ b/xen/arch/ia64/xen/vcpu.c  Wed Nov  9 18:26:17 2005
@@ -1287,26 +1287,30 @@
 unsigned long recover_to_page_fault_count = 0;
 unsigned long recover_to_break_fault_count = 0;
 
+int warn_region0_address = 0; // FIXME later: tie to a boot parameter?
+
 IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 
*pteval, UINT64 *itir, UINT64 *iha)
 {
        unsigned long pta, pte, rid, rr;
        int i;
        TR_ENTRY *trp;
 
-       if (!(address >> 61)) {
-               if (!PSCB(vcpu,metaphysical_mode)) {
-                       REGS *regs = vcpu_regs(vcpu);
-                       unsigned long viip = PSCB(vcpu,iip);
-                       unsigned long vipsr = PSCB(vcpu,ipsr);
-                       unsigned long iip = regs->cr_iip;
-                       unsigned long ipsr = regs->cr_ipsr;
-                       printk("vcpu_translate: bad address %p, viip=%p, 
vipsr=%p, iip=%p, ipsr=%p continuing\n", address, viip, vipsr, iip, ipsr);
-               }
-
+       if (PSCB(vcpu,metaphysical_mode)) {
+               if (address >> 61)      // FIXME: need more precise check here
+                       panic_domain(vcpu_regs(vcpu),
+                               "vcpu_translate: bad physical address\n");
                *pteval = (address & _PAGE_PPN_MASK) | __DIRTY_BITS | 
_PAGE_PL_2 | _PAGE_AR_RWX;
                *itir = PAGE_SHIFT << 2;
                phys_translate_count++;
                return IA64_NO_FAULT;
+       }
+       else if (!(address >> 61) && warn_region0_address) {
+               REGS *regs = vcpu_regs(vcpu);
+               unsigned long viip = PSCB(vcpu,iip);
+               unsigned long vipsr = PSCB(vcpu,ipsr);
+               unsigned long iip = regs->cr_iip;
+               unsigned long ipsr = regs->cr_ipsr;
+               printk("vcpu_translate: bad address %p, viip=%p, vipsr=%p, 
iip=%p, ipsr=%p continuing\n", address, viip, vipsr, iip, ipsr);
        }
 
        rr = PSCB(vcpu,rrs)[address>>61];

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Enable region0 virtual addresss in vcpu_translate (but still broken elsewhere), Xen patchbot -unstable <=