From 7203b89c15311d9a8bb7d6d645403170ce009b6c Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 4 May 2010 12:15:28 +0100 Subject: mini-os: Revert 21106:b20f897d6010 "Fix xenbus initialisation" Jeremy Fitzhardinge (jeremy@goop.org) reports that this fixes HVM+stubdom. Signed-off-by: Keir Fraser --- extras/mini-os/blkfront.c | 17 +++-------------- extras/mini-os/fbfront.c | 5 ++--- extras/mini-os/netfront.c | 16 ++-------------- extras/mini-os/pcifront.c | 11 +++++------ 4 files changed, 12 insertions(+), 37 deletions(-) (limited to 'extras') 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; -- cgit v1.2.3