]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/mini-os.git/commitdiff
mini-os: Revert 21106:b20f897d6010 "Fix xenbus initialisation"
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 4 May 2010 11:15:28 +0000 (12:15 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 4 May 2010 11:15:28 +0000 (12:15 +0100)
Jeremy Fitzhardinge (jeremy@goop.org) reports that this fixes HVM+stubdom.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
blkfront.c
fbfront.c
netfront.c
pcifront.c

index d59140fcb8dac96c0e5ee1ee58e00afca537ac10..695d8e65eeb786daba056fb9568291716324c358 100644 (file)
@@ -152,12 +152,13 @@ again:
     }
 
     snprintf(path, sizeof(path), "%s/state", nodename);
-    err = xenbus_switch_state(xbt, path, XenbusStateInitialised);
+    err = xenbus_switch_state(xbt, path, XenbusStateConnected);
     if (err) {
-        printk("error writing blk initialized on %s: %s\n", path, err);
+        message = "switching state";
         goto abort_transaction;
     }
 
+
     err = xenbus_transaction_end(xbt, 0, &retry);
     if (err) free(err);
     if (retry) {
@@ -188,7 +189,6 @@ done:
     {
         XenbusState state;
         char path[strlen(dev->backend) + 1 + 19 + 1];
-        char frontpath[strlen(nodename) + 1 + 6 + 1];
         snprintf(path, sizeof(path), "%s/mode", dev->backend);
         msg = xenbus_read(XBT_NIL, path, &c);
         if (msg) {
@@ -232,18 +232,7 @@ done:
         dev->info.flush = xenbus_read_integer(path);
 
         *info = dev->info;
-
-        printk("%s connected\n", dev->backend);
-
-        snprintf(frontpath, sizeof(frontpath), "%s/state", nodename);
-        if((err = xenbus_switch_state(XBT_NIL, frontpath, XenbusStateConnected))
-            != NULL) {
-            printk("error switching state: %s\n", err);
-            xenbus_unwatch_path_token(XBT_NIL, path, path);
-            goto error;
-        }
     }
-
     unmask_evtchn(dev->evtchn);
 
     printk("%u sectors of %u bytes\n", dev->info.sectors, dev->info.sector_size);
index ef024cbcd0c0809108bd9a2b9275610b8e8b9ff5..8d03e5be5a6a298679e738d4d2884fbc6a9cc7b9 100644 (file)
--- a/fbfront.c
+++ b/fbfront.c
@@ -126,8 +126,8 @@ again:
     snprintf(path, sizeof(path), "%s/state", nodename);
     err = xenbus_switch_state(xbt, path, XenbusStateInitialised);
     if (err) {
-        printk("error writing fb initialized: %s\n", err);
-        goto abort_transaction;
+        printk("error writing initialized: %s\n", err);
+        free(err);
     }
 
     err = xenbus_transaction_end(xbt, 0, &retry);
@@ -189,7 +189,6 @@ done:
     printk("************************** KBDFRONT\n");
 
     return dev;
-
 error:
     free(msg);
     free(err);
index bc70b98b4aaf66bca0451bd9a223ea457473dc8b..5674c4ae0f3fe1a2f4edd8350238f0e687525b41 100644 (file)
@@ -407,9 +407,9 @@ again:
     }
 
     snprintf(path, sizeof(path), "%s/state", nodename);
-    err = xenbus_switch_state(xbt, path, XenbusStateInitialised);
+    err = xenbus_switch_state(xbt, path, XenbusStateConnected);
     if (err) {
-        printk("error writing net initialized: %s\n", err);
+        message = "switching state";
         goto abort_transaction;
     }
 
@@ -445,7 +445,6 @@ done:
     {
         XenbusState state;
         char path[strlen(dev->backend) + 1 + 5 + 1];
-        char frontpath[strlen(nodename) + 1 + 6 + 1];
         snprintf(path, sizeof(path), "%s/state", dev->backend);
 
         xenbus_watch_path_token(XBT_NIL, path, path, &dev->events);
@@ -464,16 +463,6 @@ done:
             snprintf(path, sizeof(path), "%s/ip", dev->backend);
             xenbus_read(XBT_NIL, path, ip);
         }
-
-        printk("%s connected\n", dev->backend);
-
-        snprintf(frontpath, sizeof(frontpath), "%s/state", nodename);
-        if((err = xenbus_switch_state(XBT_NIL, frontpath, XenbusStateConnected))
-            != NULL) {
-            printk("error switching state: %s\n", err);
-            xenbus_unwatch_path_token(XBT_NIL, path, path);
-            goto error;
-        }
     }
 
     printk("**************************\n");
@@ -492,7 +481,6 @@ done:
             &rawmac[5]);
 
     return dev;
-
 error:
     free(msg);
     free(err);
index dc6c461de8126729bf6d8e23590d96e05467428f..889d7012710a89e7212c77638d3464c9ffb41071 100644 (file)
@@ -143,7 +143,7 @@ struct pcifront_dev *init_pcifront(char *_nodename)
     char* err;
     char* message=NULL;
     int retry=0;
-    char* msg = NULL;
+    char* msg;
     char* nodename = _nodename ? _nodename : "device/pci/0";
     int dom;
 
@@ -206,7 +206,7 @@ again:
     snprintf(path, sizeof(path), "%s/state", nodename);
     err = xenbus_switch_state(xbt, path, XenbusStateInitialised);
     if (err) {
-        printk("error writing pci initialized: %s\n", err);
+        message = "switching state";
         goto abort_transaction;
     }
 
@@ -237,7 +237,7 @@ done:
 
     {
         char path[strlen(dev->backend) + 1 + 5 + 1];
-        char frontpath[strlen(nodename) + 1 + 6 + 1];
+        char frontpath[strlen(nodename) + 1 + 5 + 1];
         XenbusState state;
         snprintf(path, sizeof(path), "%s/state", dev->backend);
 
@@ -254,9 +254,9 @@ done:
         }
 
         snprintf(frontpath, sizeof(frontpath), "%s/state", nodename);
-        if((err = xenbus_switch_state(XBT_NIL, frontpath, XenbusStateConnected))
+        if ((err = xenbus_switch_state(XBT_NIL, frontpath, XenbusStateConnected))
             != NULL) {
-            printk("error switching state: %s\n", err);
+            printk("error switching state %s\n", err);
             xenbus_unwatch_path_token(XBT_NIL, path, path);
             goto error;
         }
@@ -271,7 +271,6 @@ done:
     return dev;
 
 error:
-    free(msg);
     free(err);
     free_pcifront(dev);
     return NULL;