Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux-2.6-block.git] / drivers / s390 / block / dasd_diag.c
index 277b5c8c825ca4a63864a01ba67cbd8765b5a041..5667146c6a0ae3c3c513a3180921ff5986cb79ea 100644 (file)
@@ -104,12 +104,10 @@ static inline int
 mdsk_init_io(struct dasd_device *device, unsigned int blocksize,
             blocknum_t offset, blocknum_t *end_block)
 {
-       struct dasd_diag_private *private;
-       struct dasd_diag_init_io *iib;
+       struct dasd_diag_private *private = device->private;
+       struct dasd_diag_init_io *iib = &private->iib;
        int rc;
 
-       private = (struct dasd_diag_private *) device->private;
-       iib = &private->iib;
        memset(iib, 0, sizeof (struct dasd_diag_init_io));
 
        iib->dev_nr = private->dev_id.devno;
@@ -130,12 +128,10 @@ mdsk_init_io(struct dasd_device *device, unsigned int blocksize,
 static inline int
 mdsk_term_io(struct dasd_device * device)
 {
-       struct dasd_diag_private *private;
-       struct dasd_diag_init_io *iib;
+       struct dasd_diag_private *private = device->private;
+       struct dasd_diag_init_io *iib = &private->iib;
        int rc;
 
-       private = (struct dasd_diag_private *) device->private;
-       iib = &private->iib;
        memset(iib, 0, sizeof (struct dasd_diag_init_io));
        iib->dev_nr = private->dev_id.devno;
        rc = dia250(iib, TERM_BIO);
@@ -153,14 +149,13 @@ dasd_diag_erp(struct dasd_device *device)
        rc = mdsk_init_io(device, device->block->bp_block, 0, NULL);
        if (rc == 4) {
                if (!(test_and_set_bit(DASD_FLAG_DEVICE_RO, &device->flags)))
-                       pr_warning("%s: The access mode of a DIAG device "
-                                  "changed to read-only\n",
-                                  dev_name(&device->cdev->dev));
+                       pr_warn("%s: The access mode of a DIAG device changed to read-only\n",
+                               dev_name(&device->cdev->dev));
                rc = 0;
        }
        if (rc)
-               pr_warning("%s: DIAG ERP failed with "
-                           "rc=%d\n", dev_name(&device->cdev->dev), rc);
+               pr_warn("%s: DIAG ERP failed with rc=%d\n",
+                       dev_name(&device->cdev->dev), rc);
 }
 
 /* Start a given request at the device. Return zero on success, non-zero
@@ -180,8 +175,8 @@ dasd_start_diag(struct dasd_ccw_req * cqr)
                cqr->status = DASD_CQR_ERROR;
                return -EIO;
        }
-       private = (struct dasd_diag_private *) device->private;
-       dreq = (struct dasd_diag_req *) cqr->data;
+       private = device->private;
+       dreq = cqr->data;
 
        private->iob.dev_nr = private->dev_id.devno;
        private->iob.key = 0;
@@ -320,18 +315,17 @@ static void dasd_ext_handler(struct ext_code ext_code,
 static int
 dasd_diag_check_device(struct dasd_device *device)
 {
-       struct dasd_block *block;
-       struct dasd_diag_private *private;
+       struct dasd_diag_private *private = device->private;
        struct dasd_diag_characteristics *rdc_data;
-       struct dasd_diag_bio bio;
        struct vtoc_cms_label *label;
-       blocknum_t end_block;
+       struct dasd_block *block;
+       struct dasd_diag_bio bio;
        unsigned int sb, bsize;
+       blocknum_t end_block;
        int rc;
 
-       private = (struct dasd_diag_private *) device->private;
        if (private == NULL) {
-               private = kzalloc(sizeof(struct dasd_diag_private),GFP_KERNEL);
+               private = kzalloc(sizeof(*private), GFP_KERNEL);
                if (private == NULL) {
                        DBF_DEV_EVENT(DBF_WARNING, device, "%s",
                                "Allocating memory for private DASD data "
@@ -339,7 +333,7 @@ dasd_diag_check_device(struct dasd_device *device)
                        return -ENOMEM;
                }
                ccw_device_get_id(device->cdev, &private->dev_id);
-               device->private = (void *) private;
+               device->private = private;
        }
        block = dasd_alloc_block();
        if (IS_ERR(block)) {
@@ -353,7 +347,7 @@ dasd_diag_check_device(struct dasd_device *device)
        block->base = device;
 
        /* Read Device Characteristics */
-       rdc_data = (void *) &(private->rdc_data);
+       rdc_data = &private->rdc_data;
        rdc_data->dev_nr = private->dev_id.devno;
        rdc_data->rdc_len = sizeof (struct dasd_diag_characteristics);
 
@@ -377,9 +371,9 @@ dasd_diag_check_device(struct dasd_device *device)
                private->pt_block = 2;
                break;
        default:
-               pr_warning("%s: Device type %d is not supported "
-                          "in DIAG mode\n", dev_name(&device->cdev->dev),
-                          private->rdc_data.vdev_class);
+               pr_warn("%s: Device type %d is not supported in DIAG mode\n",
+                       dev_name(&device->cdev->dev),
+                       private->rdc_data.vdev_class);
                rc = -EOPNOTSUPP;
                goto out;
        }
@@ -420,8 +414,8 @@ dasd_diag_check_device(struct dasd_device *device)
                private->iob.flaga = DASD_DIAG_FLAGA_DEFAULT;
                rc = dia250(&private->iob, RW_BIO);
                if (rc == 3) {
-                       pr_warning("%s: A 64-bit DIAG call failed\n",
-                                  dev_name(&device->cdev->dev));
+                       pr_warn("%s: A 64-bit DIAG call failed\n",
+                               dev_name(&device->cdev->dev));
                        rc = -EOPNOTSUPP;
                        goto out_label;
                }
@@ -430,9 +424,8 @@ dasd_diag_check_device(struct dasd_device *device)
                        break;
        }
        if (bsize > PAGE_SIZE) {
-               pr_warning("%s: Accessing the DASD failed because of an "
-                          "incorrect format (rc=%d)\n",
-                          dev_name(&device->cdev->dev), rc);
+               pr_warn("%s: Accessing the DASD failed because of an incorrect format (rc=%d)\n",
+                       dev_name(&device->cdev->dev), rc);
                rc = -EIO;
                goto out_label;
        }
@@ -450,8 +443,8 @@ dasd_diag_check_device(struct dasd_device *device)
                block->s2b_shift++;
        rc = mdsk_init_io(device, block->bp_block, 0, NULL);
        if (rc && (rc != 4)) {
-               pr_warning("%s: DIAG initialization failed with rc=%d\n",
-                          dev_name(&device->cdev->dev), rc);
+               pr_warn("%s: DIAG initialization failed with rc=%d\n",
+                       dev_name(&device->cdev->dev), rc);
                rc = -EIO;
        } else {
                if (rc == 4)
@@ -601,16 +594,14 @@ static int
 dasd_diag_fill_info(struct dasd_device * device,
                    struct dasd_information2_t * info)
 {
-       struct dasd_diag_private *private;
+       struct dasd_diag_private *private = device->private;
 
-       private = (struct dasd_diag_private *) device->private;
        info->label_block = (unsigned int) private->pt_block;
        info->FBA_layout = 1;
        info->format = DASD_FORMAT_LDL;
-       info->characteristics_size = sizeof (struct dasd_diag_characteristics);
-       memcpy(info->characteristics,
-              &((struct dasd_diag_private *) device->private)->rdc_data,
-              sizeof (struct dasd_diag_characteristics));
+       info->characteristics_size = sizeof(private->rdc_data);
+       memcpy(info->characteristics, &private->rdc_data,
+              sizeof(private->rdc_data));
        info->confdata_size = 0;
        return 0;
 }