Pull bugzilla-7887 into release branch
[powerpc.git] / drivers / s390 / block / dasd_genhd.c
index 12c7d29..47ba446 100644 (file)
@@ -83,10 +83,12 @@ dasd_gendisk_alloc(struct dasd_device *device)
 void
 dasd_gendisk_free(struct dasd_device *device)
 {
-       del_gendisk(device->gdp);
-       device->gdp->queue = 0;
-       put_disk(device->gdp);
-       device->gdp = 0;
+       if (device->gdp) {
+               del_gendisk(device->gdp);
+               device->gdp->queue = NULL;
+               put_disk(device->gdp);
+               device->gdp = NULL;
+       }
 }
 
 /*
@@ -136,7 +138,7 @@ dasd_destroy_partitions(struct dasd_device * device)
         * device->bdev to lower the offline open_count limit again.
         */
        bdev = device->bdev;
-       device->bdev = 0;
+       device->bdev = NULL;
 
        /*
         * See fs/partition/check.c:delete_partition
@@ -145,7 +147,7 @@ dasd_destroy_partitions(struct dasd_device * device)
         */
        memset(&bpart, 0, sizeof(struct blkpg_partition));
        memset(&barg, 0, sizeof(struct blkpg_ioctl_arg));
-       barg.data = &bpart;
+       barg.data = (void __force __user *) &bpart;
        barg.op = BLKPG_DEL_PARTITION;
        for (bpart.pno = device->gdp->minors - 1; bpart.pno > 0; bpart.pno--)
                ioctl_by_bdev(bdev, BLKPG, (unsigned long) &barg);