|
|
@@ -974,6 +974,7 @@ static int read_per_ring_refs(struct xen_blkif_ring *ring, const char *dir)
|
|
|
}
|
|
|
blkif->nr_ring_pages = nr_grefs;
|
|
|
|
|
|
+ err = -ENOMEM;
|
|
|
for (i = 0; i < nr_grefs * XEN_BLKIF_REQS_PER_PAGE; i++) {
|
|
|
req = kzalloc(sizeof(*req), GFP_KERNEL);
|
|
|
if (!req)
|
|
|
@@ -996,7 +997,7 @@ static int read_per_ring_refs(struct xen_blkif_ring *ring, const char *dir)
|
|
|
err = xen_blkif_map(ring, ring_ref, nr_grefs, evtchn);
|
|
|
if (err) {
|
|
|
xenbus_dev_fatal(dev, err, "mapping ring-ref port %u", evtchn);
|
|
|
- return err;
|
|
|
+ goto fail;
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
@@ -1016,8 +1017,7 @@ fail:
|
|
|
}
|
|
|
kfree(req);
|
|
|
}
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
+ return err;
|
|
|
}
|
|
|
|
|
|
static int connect_ring(struct backend_info *be)
|