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] [xen-unstable] acm: Further fixes after grant-table chan

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] acm: Further fixes after grant-table changes.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 19 Feb 2007 17:20:09 -0800
Delivery-date: Mon, 19 Feb 2007 17:20:02 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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 kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1171901134 0
# Node ID 184db7a674d93d92d0d963a7b3c80f1889983a9e
# Parent  3b7bdb7bd1303eff6db3e223fc5bb8d06c86c570
acm: Further fixes after grant-table changes.
Based on a patch from Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/acm/acm_simple_type_enforcement_hooks.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff -r 3b7bdb7bd130 -r 184db7a674d9 xen/acm/acm_simple_type_enforcement_hooks.c
--- a/xen/acm/acm_simple_type_enforcement_hooks.c       Mon Feb 19 15:52:51 
2007 +0000
+++ b/xen/acm/acm_simple_type_enforcement_hooks.c       Mon Feb 19 16:05:34 
2007 +0000
@@ -177,7 +177,7 @@ ste_init_state(struct acm_ste_policy_buf
     ssidref_t ste_ssidref, ste_rssidref;
     struct domain **pd, *rdom;
     domid_t rdomid;
-    struct grant_entry *sha_copy;
+    struct grant_entry sha_copy;
     int port, i;
 
     read_lock(&domlist_lock); /* go by domain? or directly by global? 
event/grant list */
@@ -234,20 +234,18 @@ ste_init_state(struct acm_ste_policy_buf
             }
         } 
         /* b) check for grant table conflicts on shared pages */
-        if ((*pd)->grant_table->shared == NULL) {
-            printkd("%s: Grant ... sharing for domain %x not setup!\n", 
__func__, (*pd)->domain_id);
-            continue;
-        }
+        spin_lock(&(*pd)->grant_table->lock);
         for ( i = 0; i < nr_grant_frames((*pd)->grant_table); i++ ) {
-            sha_copy =  (*pd)->grant_table->shared[i];
-            if ( sha_copy->flags ) {
+#define SPP (PAGE_SIZE / sizeof(struct grant_entry))
+            sha_copy = (*pd)->grant_table->shared[i/SPP][i%SPP];
+            if ( sha_copy.flags ) {
                 printkd("%s: grant dom (%hu) SHARED (%d) flags:(%hx) dom:(%hu) 
frame:(%lx)\n",
                         __func__, (*pd)->domain_id, i, sha_copy.flags, 
sha_copy.domid, 
                         (unsigned long)sha_copy.frame);
-                rdomid = sha_copy->domid;
+                rdomid = sha_copy.domid;
                 if ((rdom = get_domain_by_id(rdomid)) == NULL) {
                     printkd("%s: domain not found ERROR!\n", __func__);
-                    goto out;
+                    goto out_gnttab;
                 };
                 /* rdom now has remote domain */
                 ste_rssid = GET_SSIDP(ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY, 
@@ -257,12 +255,14 @@ ste_init_state(struct acm_ste_policy_buf
                 if (!have_common_type(ste_ssidref, ste_rssidref)) {
                     printkd("%s: Policy violation in grant table sharing 
domain %x -> domain %x.\n",
                             __func__, (*pd)->domain_id, rdomid);
-                    goto out;
+                    goto out_gnttab;
                 }
             }
         }
     }
     violation = 0;
+ out_gnttab:
+    spin_unlock(&(*pd)->grant_table->lock);
  out:
     read_unlock(&domlist_lock);
     return violation;

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] acm: Further fixes after grant-table changes., Xen patchbot-unstable <=