char* message=NULL;
struct blkif_sring *s;
int retry=0;
- char* msg;
+ char* msg = NULL;
char* c;
char* nodename = _nodename ? _nodename : "device/vbd/768";
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt, nodename, "ring-ref","%u",
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
goto error;
done:
return dev;
error:
+ free(msg);
+ free(err);
free_blkfront(dev);
return NULL;
}
state = xenbus_read_integer(path);
while (err == NULL && state < XenbusStateClosing)
err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
printk("shutdown_blkfront: error changing state to %d: %s\n",
goto close;
}
state = xenbus_read_integer(path);
- if (state < XenbusStateClosed)
- xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (state < XenbusStateClosed) {
+ err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
+ }
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
printk("shutdown_blkfront: error changing state to %d: %s\n",
err = xenbus_wait_for_state_change(path, &state, &dev->events);
close:
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, path, path);
snprintf(path, sizeof(path), "%s/ring-ref", nodename);
char* err;
char* message=NULL;
int retry=0;
- char* msg;
+ char* msg = NULL;
char nodename[256];
char path[256];
static int consfrontends = 1;
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt, nodename, "ring-ref","%u",
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
goto error;
done:
return dev;
error:
+ free(msg);
+ free(err);
free_consfront(dev);
return NULL;
}
char* message=NULL;
struct xenkbd_page *s;
int retry=0;
- char* msg;
+ char* msg = NULL;
char* nodename = _nodename ? _nodename : "device/vkbd/0";
struct kbdfront_dev *dev;
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt, nodename, "page-ref","%u", virt_to_mfn(s));
snprintf(path, sizeof(path), "%s/state", nodename);
err = xenbus_switch_state(xbt, path, XenbusStateInitialised);
- if (err)
+ if (err) {
printk("error writing initialized: %s\n", err);
-
+ free(err);
+ }
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
goto error;
done:
return dev;
error:
+ free(msg);
+ free(err);
free_kbdfront(dev);
return NULL;
}
state = xenbus_read_integer(path);
while (err == NULL && state < XenbusStateClosing)
err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
printk("shutdown_kbdfront: error changing state to %d: %s\n",
goto close_kbdfront;
}
state = xenbus_read_integer(path);
- if (state < XenbusStateClosed)
- xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (state < XenbusStateClosed) {
+ err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
+ }
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
printk("shutdown_kbdfront: error changing state to %d: %s\n",
//xenbus_wait_for_value(path, "2", &dev->events);
close_kbdfront:
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, path, path);
snprintf(path, sizeof(path), "%s/page-ref", nodename);
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt, nodename, "page-ref","%u", virt_to_mfn(s));
}
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
goto error;
done:
return dev;
error:
+ free(err);
free_fbfront(dev);
return NULL;
}
state = xenbus_read_integer(path);
while (err == NULL && state < XenbusStateClosing)
err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
printk("shutdown_fbfront: error changing state to %d: %s\n",
goto close_fbfront;
}
state = xenbus_read_integer(path);
- if (state < XenbusStateClosed)
+ if (state < XenbusStateClosed) {
xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
+ }
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
printk("shutdown_fbfront: error changing state to %d: %s\n",
//xenbus_wait_for_value(path, "2", &dev->events);
close_fbfront:
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, path, path);
snprintf(path, sizeof(path), "%s/page-ref", nodename);
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt,
}
err = xenbus_printf(xbt, nodename, "state", STATE_READY, 0xdeadbeef);
+ if (err) free(err);
-
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
+ if (err) free(err);
done:
sprintf(token, "fs-front-%d", import->import_id);
/* The token will not be unique if multiple imports are inited */
xenbus_watch_path_token(XBT_NIL, r_nodename, r_nodename, &events);
- xenbus_wait_for_value(r_nodename, STATE_READY, &events);
+ err = xenbus_wait_for_value(r_nodename, STATE_READY, &events);
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, r_nodename, r_nodename);
printk("Backend ready.\n");
struct netif_rx_sring *rxs;
int retry=0;
int i;
- char* msg;
+ char* msg = NULL;
char nodename[256];
char path[256];
struct netfront_dev *dev;
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt, nodename, "tx-ring-ref","%u",
}
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
goto error;
done:
return dev;
error:
+ free(msg);
+ free(err);
free_netfront(dev);
return NULL;
}
state = xenbus_read_integer(path);
while (err == NULL && state < XenbusStateClosing)
err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
printk("shutdown_netfront: error changing state to %d: %s\n",
goto close;
}
state = xenbus_read_integer(path);
- if (state < XenbusStateClosed)
- xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (state < XenbusStateClosed) {
+ err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
+ }
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
printk("shutdown_netfront: error changing state to %d: %s\n",
err = xenbus_wait_for_state_change(path, &state, &dev->events);
close:
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, path, path);
snprintf(path, sizeof(path), "%s/tx-ring-ref", nodename);
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt, nodename, "pci-op-ref","%u",
}
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
goto error;
done:
return dev;
error:
+ free(err);
free_pcifront(dev);
return NULL;
}
state = xenbus_read_integer(path);
while (err == NULL && state < XenbusStateClosing)
err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (err) free(err);
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
printk("shutdown_pcifront: error changing state to %d: %s\n",
goto close_pcifront;
}
state = xenbus_read_integer(path);
- if (state < XenbusStateClosed)
- xenbus_wait_for_state_change(path, &state, &dev->events);
+ if (state < XenbusStateClosed) {
+ err = xenbus_wait_for_state_change(path, &state, &dev->events);
+ free(err);
+ }
if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
printk("shutdown_pcifront: error changing state to %d: %s\n",
err = xenbus_wait_for_state_change(path, &state, &dev->events);
close_pcifront:
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, path, path);
snprintf(path, sizeof(path), "%s/info-ref", nodename);
do {
if (xbt == XBT_NIL) {
- xenbus_transaction_start(&xbt);
+ msg = xenbus_transaction_start(&xbt);
+ if (msg) goto exit;
xbt_flag = 1;
}