aboutsummaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-05-04 12:15:28 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-05-04 12:15:28 +0100
commit7203b89c15311d9a8bb7d6d645403170ce009b6c (patch)
tree9fe48d7007a0dfde9fc0a79551681689c4762aad /extras
parent335c738c440e8a283e10660d38bf82532b439cf8 (diff)
downloadxen-7203b89c15311d9a8bb7d6d645403170ce009b6c.tar.gz
xen-7203b89c15311d9a8bb7d6d645403170ce009b6c.tar.bz2
xen-7203b89c15311d9a8bb7d6d645403170ce009b6c.zip
mini-os: Revert 21106:b20f897d6010 "Fix xenbus initialisation"
Jeremy Fitzhardinge (jeremy@goop.org) reports that this fixes HVM+stubdom. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'extras')
-rw-r--r--extras/mini-os/blkfront.c17
-rw-r--r--extras/mini-os/fbfront.c5
-rw-r--r--extras/mini-os/netfront.c16
-rw-r--r--extras/mini-os/pcifront.c11
4 files changed, 12 insertions, 37 deletions
diff --git a/extras/mini-os/blkfront.c b/extras/mini-os/blkfront.c
index d59140fcb8..695d8e65ee 100644
--- a/extras/mini-os/blkfront.c
+++ b/extras/mini-os/blkfront.c
@@ -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);
diff --git a/extras/mini-os/fbfront.c b/extras/mini-os/fbfront.c
index ef024cbcd0..8d03e5be5a 100644
--- a/extras/mini-os/fbfront.c
+++ b/extras/mini-os/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);
diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c
index bc70b98b4a..5674c4ae0f 100644
--- a/extras/mini-os/netfront.c
+++ b/extras/mini-os/netfront.c
@@ -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);
diff --git a/extras/mini-os/pcifront.c b/extras/mini-os/pcifront.c
index dc6c461de8..889d701271 100644
--- a/extras/mini-os/pcifront.c
+++ b/extras/mini-os/pcifront.c
@@ -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;