]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/block/xen-blkfront.c
xenbus_client: Extend interface to support multi-page ring
[karo-tx-linux.git] / drivers / block / xen-blkfront.c
index 37779e4c4585eaeeebdb801229291041b8fc7103..2c61cf8c6f61d1086ea60155e3b1c12b9bb706bf 100644 (file)
@@ -1245,6 +1245,7 @@ static int setup_blkring(struct xenbus_device *dev,
                         struct blkfront_info *info)
 {
        struct blkif_sring *sring;
+       grant_ref_t gref;
        int err;
 
        info->ring_ref = GRANT_INVALID_REF;
@@ -1257,13 +1258,13 @@ static int setup_blkring(struct xenbus_device *dev,
        SHARED_RING_INIT(sring);
        FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE);
 
-       err = xenbus_grant_ring(dev, virt_to_mfn(info->ring.sring));
+       err = xenbus_grant_ring(dev, info->ring.sring, 1, &gref);
        if (err < 0) {
                free_page((unsigned long)sring);
                info->ring.sring = NULL;
                goto fail;
        }
-       info->ring_ref = err;
+       info->ring_ref = gref;
 
        err = xenbus_alloc_evtchn(dev, &info->evtchn);
        if (err)