s390/dasd: remove casts to dasd_*_private
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Fri, 4 Mar 2016 09:34:05 +0000 (10:34 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 7 Mar 2016 12:12:02 +0000 (13:12 +0100)
Convert dasd_device.private to be a void pointer to get
rid of a lot of explicit casts.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd_alias.c
drivers/s390/block/dasd_diag.c
drivers/s390/block/dasd_eckd.c
drivers/s390/block/dasd_fba.c
drivers/s390/block/dasd_int.h

index cbbdd3e..17ad574 100644 (file)
@@ -185,14 +185,12 @@ static void _free_lcu(struct alias_lcu *lcu)
  */
 int dasd_alias_make_device_known_to_lcu(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        unsigned long flags;
        struct alias_server *server, *newserver;
        struct alias_lcu *lcu, *newlcu;
        struct dasd_uid uid;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        device->discipline->get_uid(device, &uid);
        spin_lock_irqsave(&aliastree.lock, flags);
        server = _find_server(&uid);
@@ -244,14 +242,13 @@ int dasd_alias_make_device_known_to_lcu(struct dasd_device *device)
  */
 void dasd_alias_disconnect_device_from_lcu(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        unsigned long flags;
        struct alias_lcu *lcu;
        struct alias_server *server;
        int was_pending;
        struct dasd_uid uid;
 
-       private = (struct dasd_eckd_private *) device->private;
        lcu = private->lcu;
        /* nothing to do if already disconnected */
        if (!lcu)
@@ -316,12 +313,10 @@ static int _add_device_to_lcu(struct alias_lcu *lcu,
                              struct dasd_device *pos)
 {
 
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct alias_pav_group *group;
        struct dasd_uid uid;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        private->uid.type = lcu->uac->unit[private->uid.real_unit_addr].ua_type;
        private->uid.base_unit_addr =
                lcu->uac->unit[private->uid.real_unit_addr].base_ua;
@@ -362,10 +357,9 @@ static int _add_device_to_lcu(struct alias_lcu *lcu,
 static void _remove_device_from_lcu(struct alias_lcu *lcu,
                                    struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct alias_pav_group *group;
 
-       private = (struct dasd_eckd_private *) device->private;
        list_move(&device->alias_list, &lcu->inactive_devices);
        group = private->pavgroup;
        if (!group)
@@ -603,13 +597,13 @@ static int _lcu_update(struct dasd_device *refdev, struct alias_lcu *lcu)
                list_for_each_entry_safe(device, tempdev, &pavgroup->baselist,
                                         alias_list) {
                        list_move(&device->alias_list, &lcu->active_devices);
-                       private = (struct dasd_eckd_private *) device->private;
+                       private = device->private;
                        private->pavgroup = NULL;
                }
                list_for_each_entry_safe(device, tempdev, &pavgroup->aliaslist,
                                         alias_list) {
                        list_move(&device->alias_list, &lcu->active_devices);
-                       private = (struct dasd_eckd_private *) device->private;
+                       private = device->private;
                        private->pavgroup = NULL;
                }
                list_del(&pavgroup->group);
@@ -721,12 +715,11 @@ static int _schedule_lcu_update(struct alias_lcu *lcu,
 
 int dasd_alias_add_device(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct alias_lcu *lcu;
        unsigned long flags;
        int rc;
 
-       private = (struct dasd_eckd_private *) device->private;
        lcu = private->lcu;
        rc = 0;
        spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags);
@@ -747,20 +740,18 @@ int dasd_alias_add_device(struct dasd_device *device)
 
 int dasd_alias_update_add_device(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
-       private = (struct dasd_eckd_private *) device->private;
+       struct dasd_eckd_private *private = device->private;
+
        private->lcu->flags |= UPDATE_PENDING;
        return dasd_alias_add_device(device);
 }
 
 int dasd_alias_remove_device(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
-       struct alias_lcu *lcu;
+       struct dasd_eckd_private *private = device->private;
+       struct alias_lcu *lcu = private->lcu;
        unsigned long flags;
 
-       private = (struct dasd_eckd_private *) device->private;
-       lcu = private->lcu;
        /* nothing to do if already removed */
        if (!lcu)
                return 0;
@@ -772,16 +763,12 @@ int dasd_alias_remove_device(struct dasd_device *device)
 
 struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
 {
-
+       struct dasd_eckd_private *alias_priv, *private = base_device->private;
+       struct alias_pav_group *group = private->pavgroup;
+       struct alias_lcu *lcu = private->lcu;
        struct dasd_device *alias_device;
-       struct alias_pav_group *group;
-       struct alias_lcu *lcu;
-       struct dasd_eckd_private *private, *alias_priv;
        unsigned long flags;
 
-       private = (struct dasd_eckd_private *) base_device->private;
-       group = private->pavgroup;
-       lcu = private->lcu;
        if (!group || !lcu)
                return NULL;
        if (lcu->pav == NO_PAV ||
@@ -817,7 +804,7 @@ struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
                group->next = list_first_entry(&alias_device->alias_list,
                                               struct dasd_device, alias_list);
        spin_unlock_irqrestore(&lcu->lock, flags);
-       alias_priv = (struct dasd_eckd_private *) alias_device->private;
+       alias_priv = alias_device->private;
        if ((alias_priv->count < private->count) && !alias_device->stopped &&
            !test_bit(DASD_FLAG_OFFLINE, &alias_device->flags))
                return alias_device;
@@ -868,14 +855,14 @@ static void _restart_all_base_devices_on_lcu(struct alias_lcu *lcu)
 
        /* active and inactive list can contain alias as well as base devices */
        list_for_each_entry(device, &lcu->active_devices, alias_list) {
-               private = (struct dasd_eckd_private *) device->private;
+               private = device->private;
                if (private->uid.type != UA_BASE_DEVICE)
                        continue;
                dasd_schedule_block_bh(device->block);
                dasd_schedule_device_bh(device);
        }
        list_for_each_entry(device, &lcu->inactive_devices, alias_list) {
-               private = (struct dasd_eckd_private *) device->private;
+               private = device->private;
                if (private->uid.type != UA_BASE_DEVICE)
                        continue;
                dasd_schedule_block_bh(device->block);
@@ -912,7 +899,7 @@ static void flush_all_alias_devices_on_lcu(struct alias_lcu *lcu)
        spin_lock_irqsave(&lcu->lock, flags);
        list_for_each_entry_safe(device, temp, &lcu->active_devices,
                                 alias_list) {
-               private = (struct dasd_eckd_private *) device->private;
+               private = device->private;
                if (private->uid.type == UA_BASE_DEVICE)
                        continue;
                list_move(&device->alias_list, &active);
@@ -934,7 +921,7 @@ static void flush_all_alias_devices_on_lcu(struct alias_lcu *lcu)
                if (device == list_first_entry(&active,
                                               struct dasd_device, alias_list)) {
                        list_move(&device->alias_list, &lcu->active_devices);
-                       private = (struct dasd_eckd_private *) device->private;
+                       private = device->private;
                        private->pavgroup = NULL;
                }
        }
@@ -1014,13 +1001,11 @@ static void summary_unit_check_handling_work(struct work_struct *work)
 void dasd_alias_handle_summary_unit_check(struct dasd_device *device,
                                          struct irb *irb)
 {
+       struct dasd_eckd_private *private = device->private;
        struct alias_lcu *lcu;
        char reason;
-       struct dasd_eckd_private *private;
        char *sense;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        sense = dasd_get_sense(irb);
        if (sense) {
                reason = sense[8];
index cb61f30..38c5c6f 100644 (file)
@@ -99,12 +99,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;
@@ -125,12 +123,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);
@@ -175,8 +171,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;
@@ -315,18 +311,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 "
@@ -334,7 +329,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)) {
@@ -348,7 +343,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);
 
@@ -596,16 +591,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;
 }
index e679209..75c032d 100644 (file)
@@ -212,10 +212,9 @@ check_XRC (struct ccw1         *de_ccw,
            struct DE_eckd_data *data,
            struct dasd_device  *device)
 {
-        struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int rc;
 
-        private = (struct dasd_eckd_private *) device->private;
        if (!private->rdc_data.facilities.XRC_supported)
                return 0;
 
@@ -237,13 +236,11 @@ static int
 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk,
              unsigned int totrk, int cmd, struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        u32 begcyl, endcyl;
        u16 heads, beghead, endhead;
        int rc = 0;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT;
        ccw->flags = 0;
        ccw->count = 16;
@@ -322,10 +319,9 @@ define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk,
 static int check_XRC_on_prefix(struct PFX_eckd_data *pfxdata,
                               struct dasd_device  *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int rc;
 
-       private = (struct dasd_eckd_private *) device->private;
        if (!private->rdc_data.facilities.XRC_supported)
                return 0;
 
@@ -346,12 +342,10 @@ static void fill_LRE_data(struct LRE_eckd_data *data, unsigned int trk,
                          struct dasd_device *device, unsigned int reclen,
                          unsigned int tlf)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int sector;
        int dn, d;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        memset(data, 0, sizeof(*data));
        sector = 0;
        if (rec_on_trk) {
@@ -488,8 +482,8 @@ static int prefix_LRE(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
        u16 heads, beghead, endhead;
        int rc = 0;
 
-       basepriv = (struct dasd_eckd_private *) basedev->private;
-       startpriv = (struct dasd_eckd_private *) startdev->private;
+       basepriv = basedev->private;
+       startpriv = startdev->private;
        dedata = &pfxdata->define_extent;
        lredata = &pfxdata->locate_record;
 
@@ -631,12 +625,10 @@ locate_record(struct ccw1 *ccw, struct LO_eckd_data *data, unsigned int trk,
              unsigned int rec_on_trk, int no_rec, int cmd,
              struct dasd_device * device, int reclen)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int sector;
        int dn, d;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        DBF_DEV_EVENT(DBF_INFO, device,
                  "Locate: trk %d, rec %d, no_rec %d, cmd %d, reclen %d",
                  trk, rec_on_trk, no_rec, cmd, reclen);
@@ -800,10 +792,9 @@ static void create_uid(struct dasd_eckd_private *private)
  */
 static int dasd_eckd_generate_uid(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        unsigned long flags;
 
-       private = (struct dasd_eckd_private *) device->private;
        if (!private)
                return -ENODEV;
        if (!private->ned || !private->gneq)
@@ -816,11 +807,10 @@ static int dasd_eckd_generate_uid(struct dasd_device *device)
 
 static int dasd_eckd_get_uid(struct dasd_device *device, struct dasd_uid *uid)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        unsigned long flags;
 
-       if (device->private) {
-               private = (struct dasd_eckd_private *)device->private;
+       if (private) {
                spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags);
                *uid = private->uid;
                spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags);
@@ -1034,10 +1024,9 @@ static unsigned char dasd_eckd_path_access(void *conf_data, int conf_len)
 
 static void dasd_eckd_clear_conf_data(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int i;
 
-       private = (struct dasd_eckd_private *) device->private;
        private->conf_data = NULL;
        private->conf_len = 0;
        for (i = 0; i < 8; i++) {
@@ -1058,7 +1047,7 @@ static int dasd_eckd_read_conf(struct dasd_device *device)
        struct dasd_uid *uid;
        char print_path_uid[60], print_device_uid[60];
 
-       private = (struct dasd_eckd_private *) device->private;
+       private = device->private;
        path_data = &device->path_data;
        opm = ccw_device_get_path_mask(device->cdev);
        conf_data_saved = 0;
@@ -1191,11 +1180,10 @@ static int dasd_eckd_read_conf(struct dasd_device *device)
 
 static int verify_fcx_max_data(struct dasd_device *device, __u8 lpm)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int mdc;
        u32 fcx_max_data;
 
-       private = (struct dasd_eckd_private *) device->private;
        if (private->fcx_max_data) {
                mdc = ccw_device_get_mdc(device->cdev, lpm);
                if ((mdc < 0)) {
@@ -1221,15 +1209,10 @@ static int verify_fcx_max_data(struct dasd_device *device, __u8 lpm)
 static int rebuild_device_uid(struct dasd_device *device,
                              struct path_verification_work_data *data)
 {
-       struct dasd_eckd_private *private;
-       struct dasd_path *path_data;
-       __u8 lpm, opm;
-       int rc;
-
-       rc = -ENODEV;
-       private = (struct dasd_eckd_private *) device->private;
-       path_data = &device->path_data;
-       opm = device->path_data.opm;
+       struct dasd_eckd_private *private = device->private;
+       struct dasd_path *path_data = &device->path_data;
+       __u8 lpm, opm = path_data->opm;
+       int rc = -ENODEV;
 
        for (lpm = 0x80; lpm; lpm >>= 1) {
                if (!(lpm & opm))
@@ -1463,14 +1446,13 @@ static int dasd_eckd_verify_path(struct dasd_device *device, __u8 lpm)
 
 static int dasd_eckd_read_features(struct dasd_device *device)
 {
+       struct dasd_eckd_private *private = device->private;
        struct dasd_psf_prssd_data *prssdp;
        struct dasd_rssd_features *features;
        struct dasd_ccw_req *cqr;
        struct ccw1 *ccw;
        int rc;
-       struct dasd_eckd_private *private;
 
-       private = (struct dasd_eckd_private *) device->private;
        memset(&private->features, 0, sizeof(struct dasd_rssd_features));
        cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */,
                                   (sizeof(struct dasd_psf_prssd_data) +
@@ -1605,11 +1587,9 @@ dasd_eckd_psf_ssc(struct dasd_device *device, int enable_pav,
 static int dasd_eckd_validate_server(struct dasd_device *device,
                                     unsigned long flags)
 {
-       int rc;
-       struct dasd_eckd_private *private;
-       int enable_pav;
+       struct dasd_eckd_private *private = device->private;
+       int enable_pav, rc;
 
-       private = (struct dasd_eckd_private *) device->private;
        if (private->uid.type == UA_BASE_PAV_ALIAS ||
            private->uid.type == UA_HYPER_PAV_ALIAS)
                return 0;
@@ -1662,14 +1642,13 @@ static void dasd_eckd_kick_validate_server(struct dasd_device *device)
 
 static u32 get_fcx_max_data(struct dasd_device *device)
 {
-       int tpm, mdc;
+       struct dasd_eckd_private *private = device->private;
        int fcx_in_css, fcx_in_gneq, fcx_in_features;
-       struct dasd_eckd_private *private;
+       int tpm, mdc;
 
        if (dasd_nofcx)
                return 0;
        /* is transport mode supported? */
-       private = (struct dasd_eckd_private *) device->private;
        fcx_in_css = css_general_characteristics.fcx;
        fcx_in_gneq = private->gneq->reserved2[7] & 0x04;
        fcx_in_features = private->features.feature[40] & 0x80;
@@ -1694,7 +1673,7 @@ static u32 get_fcx_max_data(struct dasd_device *device)
 static int
 dasd_eckd_check_characteristics(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct dasd_block *block;
        struct dasd_uid temp_uid;
        int rc, i;
@@ -1713,7 +1692,6 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
                dev_info(&device->cdev->dev,
                         "The DASD is not operating in multipath mode\n");
        }
-       private = (struct dasd_eckd_private *) device->private;
        if (!private) {
                private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
                if (!private) {
@@ -1722,7 +1700,7 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
                                 "failed\n");
                        return -ENOMEM;
                }
-               device->private = (void *) private;
+               device->private = private;
        } else {
                memset(private, 0, sizeof(*private));
        }
@@ -1837,10 +1815,9 @@ out_err1:
 
 static void dasd_eckd_uncheck_device(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int i;
 
-       private = (struct dasd_eckd_private *) device->private;
        dasd_alias_disconnect_device_from_lcu(device);
        private->ned = NULL;
        private->sneq = NULL;
@@ -1863,7 +1840,7 @@ static void dasd_eckd_uncheck_device(struct dasd_device *device)
 static struct dasd_ccw_req *
 dasd_eckd_analysis_ccw(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct eckd_count *count_data;
        struct LO_eckd_data *LO_data;
        struct dasd_ccw_req *cqr;
@@ -1871,8 +1848,6 @@ dasd_eckd_analysis_ccw(struct dasd_device *device)
        int cplength, datasize;
        int i;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        cplength = 8;
        datasize = sizeof(struct DE_eckd_data) + 2*sizeof(struct LO_eckd_data);
        cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, device);
@@ -1946,11 +1921,9 @@ static int dasd_eckd_analysis_evaluation(struct dasd_ccw_req *init_cqr)
 static void dasd_eckd_analysis_callback(struct dasd_ccw_req *init_cqr,
                                        void *data)
 {
-       struct dasd_eckd_private *private;
-       struct dasd_device *device;
+       struct dasd_device *device = init_cqr->startdev;
+       struct dasd_eckd_private *private = device->private;
 
-       device = init_cqr->startdev;
-       private = (struct dasd_eckd_private *) device->private;
        private->init_cqr_status = dasd_eckd_analysis_evaluation(init_cqr);
        dasd_sfree_request(init_cqr, device);
        dasd_kick_device(device);
@@ -1977,15 +1950,13 @@ static int dasd_eckd_start_analysis(struct dasd_block *block)
 
 static int dasd_eckd_end_analysis(struct dasd_block *block)
 {
-       struct dasd_device *device;
-       struct dasd_eckd_private *private;
+       struct dasd_device *device = block->base;
+       struct dasd_eckd_private *private = device->private;
        struct eckd_count *count_area;
        unsigned int sb, blk_per_trk;
        int status, i;
        struct dasd_ccw_req *init_cqr;
 
-       device = block->base;
-       private = (struct dasd_eckd_private *) device->private;
        status = private->init_cqr_status;
        private->init_cqr_status = -1;
        if (status == INIT_CQR_ERROR) {
@@ -2083,9 +2054,8 @@ raw:
 
 static int dasd_eckd_do_analysis(struct dasd_block *block)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = block->base->private;
 
-       private = (struct dasd_eckd_private *) block->base->private;
        if (private->init_cqr_status < 0)
                return dasd_eckd_start_analysis(block);
        else
@@ -2112,9 +2082,8 @@ static int dasd_eckd_basic_to_known(struct dasd_device *device)
 static int
 dasd_eckd_fill_geometry(struct dasd_block *block, struct hd_geometry *geo)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = block->base->private;
 
-       private = (struct dasd_eckd_private *) block->base->private;
        if (dasd_check_blocksize(block->bp_block) == 0) {
                geo->sectors = recs_per_track(&private->rdc_data,
                                              0, block->bp_block);
@@ -2151,8 +2120,8 @@ dasd_eckd_build_format(struct dasd_device *base,
        if (!startdev)
                startdev = base;
 
-       start_priv = (struct dasd_eckd_private *) startdev->private;
-       base_priv = (struct dasd_eckd_private *) base->private;
+       start_priv = startdev->private;
+       base_priv = base->private;
 
        rpt = recs_per_track(&base_priv->rdc_data, 0, fdata->blksize);
 
@@ -2402,9 +2371,7 @@ dasd_eckd_format_build_ccw_req(struct dasd_device *base,
 static int dasd_eckd_format_sanity_checks(struct dasd_device *base,
                                          struct format_data_t *fdata)
 {
-       struct dasd_eckd_private *private;
-
-       private = (struct dasd_eckd_private *) base->private;
+       struct dasd_eckd_private *private = base->private;
 
        if (fdata->start_unit >=
            (private->real_cyl * private->rdc_data.trk_per_cyl)) {
@@ -2442,16 +2409,14 @@ static int dasd_eckd_format_process_data(struct dasd_device *base,
                                         struct format_data_t *fdata,
                                         int enable_pav)
 {
+       struct dasd_eckd_private *private = base->private;
        struct dasd_ccw_req *cqr, *n;
-       struct dasd_eckd_private *private;
        struct list_head format_queue;
        struct dasd_device *device;
        int old_start, old_stop, format_step;
        int step, retry;
        int rc;
 
-       private = (struct dasd_eckd_private *) base->private;
-
        rc = dasd_eckd_format_sanity_checks(base, fdata);
        if (rc)
                return rc;
@@ -2500,7 +2465,7 @@ static int dasd_eckd_format_process_data(struct dasd_device *base,
 out_err:
                list_for_each_entry_safe(cqr, n, &format_queue, blocklist) {
                        device = cqr->startdev;
-                       private = (struct dasd_eckd_private *) device->private;
+                       private = device->private;
                        if (cqr->status == DASD_CQR_FAILED)
                                rc = -EIO;
                        list_del_init(&cqr->blocklist);
@@ -2571,9 +2536,8 @@ static void dasd_eckd_check_for_device_change(struct dasd_device *device,
 {
        char mask;
        char *sense = NULL;
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
 
-       private = (struct dasd_eckd_private *) device->private;
        /* first of all check for state change pending interrupt */
        mask = DEV_STAT_ATTENTION | DEV_STAT_DEV_END | DEV_STAT_UNIT_EXCEP;
        if ((scsw_dstat(&irb->scsw) & mask) == mask) {
@@ -2662,7 +2626,7 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_cmd_single(
        struct dasd_device *basedev;
 
        basedev = block->base;
-       private = (struct dasd_eckd_private *) basedev->private;
+       private = basedev->private;
        if (rq_data_dir(req) == READ)
                cmd = DASD_ECKD_CCW_READ_MT;
        else if (rq_data_dir(req) == WRITE)
@@ -3018,8 +2982,8 @@ static int prepare_itcw(struct itcw *itcw,
 
 
        /* setup prefix data */
-       basepriv = (struct dasd_eckd_private *) basedev->private;
-       startpriv = (struct dasd_eckd_private *) startdev->private;
+       basepriv = basedev->private;
+       startpriv = startdev->private;
        dedata = &pfxdata.define_extent;
        lredata = &pfxdata.locate_record;
 
@@ -3306,7 +3270,7 @@ static struct dasd_ccw_req *dasd_eckd_build_cp(struct dasd_device *startdev,
        struct dasd_ccw_req *cqr;
 
        basedev = block->base;
-       private = (struct dasd_eckd_private *) basedev->private;
+       private = basedev->private;
 
        /* Calculate number of blocks/records per track. */
        blksize = block->bp_block;
@@ -3531,7 +3495,7 @@ dasd_eckd_free_cp(struct dasd_ccw_req *cqr, struct request *req)
 
        if (!dasd_page_cache)
                goto out;
-       private = (struct dasd_eckd_private *) cqr->block->base->private;
+       private = cqr->block->base->private;
        blksize = cqr->block->bp_block;
        blk_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
        recid = blk_rq_pos(req) >> cqr->block->s2b_shift;
@@ -3615,7 +3579,7 @@ static struct dasd_ccw_req *dasd_eckd_build_alias_cp(struct dasd_device *base,
        startdev = dasd_alias_get_start_dev(base);
        if (!startdev)
                startdev = base;
-       private = (struct dasd_eckd_private *) startdev->private;
+       private = startdev->private;
        if (private->count >= DASD_ECKD_CHANQ_MAX_SIZE)
                return ERR_PTR(-EBUSY);
 
@@ -3638,7 +3602,7 @@ static int dasd_eckd_free_alias_cp(struct dasd_ccw_req *cqr,
        unsigned long flags;
 
        spin_lock_irqsave(get_ccwdev_lock(cqr->memdev->cdev), flags);
-       private = (struct dasd_eckd_private *) cqr->memdev->private;
+       private = cqr->memdev->private;
        private->count--;
        spin_unlock_irqrestore(get_ccwdev_lock(cqr->memdev->cdev), flags);
        return dasd_eckd_free_cp(cqr, req);
@@ -3648,15 +3612,14 @@ static int
 dasd_eckd_fill_info(struct dasd_device * device,
                    struct dasd_information2_t * info)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
 
-       private = (struct dasd_eckd_private *) device->private;
        info->label_block = 2;
        info->FBA_layout = private->uses_cdl ? 0 : 1;
        info->format = private->uses_cdl ? DASD_FORMAT_CDL : DASD_FORMAT_LDL;
-       info->characteristics_size = sizeof(struct dasd_eckd_characteristics);
+       info->characteristics_size = sizeof(private->rdc_data);
        memcpy(info->characteristics, &private->rdc_data,
-              sizeof(struct dasd_eckd_characteristics));
+              sizeof(private->rdc_data));
        info->confdata_size = min((unsigned long)private->conf_len,
                                  sizeof(info->configuration_data));
        memcpy(info->configuration_data, private->conf_data,
@@ -3969,8 +3932,7 @@ dasd_eckd_performance(struct dasd_device *device, void __user *argp)
 static int
 dasd_eckd_get_attrib(struct dasd_device *device, void __user *argp)
 {
-       struct dasd_eckd_private *private =
-               (struct dasd_eckd_private *)device->private;
+       struct dasd_eckd_private *private = device->private;
        struct attrib_data_t attrib = private->attrib;
        int rc;
 
@@ -3994,8 +3956,7 @@ dasd_eckd_get_attrib(struct dasd_device *device, void __user *argp)
 static int
 dasd_eckd_set_attrib(struct dasd_device *device, void __user *argp)
 {
-       struct dasd_eckd_private *private =
-               (struct dasd_eckd_private *)device->private;
+       struct dasd_eckd_private *private = device->private;
        struct attrib_data_t attrib;
 
        if (!capable(CAP_SYS_ADMIN))
@@ -4458,15 +4419,13 @@ static int dasd_eckd_pm_freeze(struct dasd_device *device)
 
 static int dasd_eckd_restore_device(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct dasd_eckd_characteristics temp_rdc_data;
        int rc;
        struct dasd_uid temp_uid;
        unsigned long flags;
        unsigned long cqr_flags = 0;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        /* Read Configuration Data */
        rc = dasd_eckd_read_conf(device);
        if (rc) {
@@ -4530,14 +4489,12 @@ out_err:
 
 static int dasd_eckd_reload_device(struct dasd_device *device)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        int rc, old_base;
        char print_uid[60];
        struct dasd_uid uid;
        unsigned long flags;
 
-       private = (struct dasd_eckd_private *) device->private;
-
        spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags);
        old_base = private->uid.base_unit_addr;
        spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags);
@@ -4584,12 +4541,10 @@ static int dasd_eckd_read_message_buffer(struct dasd_device *device,
 {
        struct dasd_rssd_messages *message_buf;
        struct dasd_psf_prssd_data *prssdp;
-       struct dasd_eckd_private *private;
        struct dasd_ccw_req *cqr;
        struct ccw1 *ccw;
        int rc;
 
-       private = (struct dasd_eckd_private *) device->private;
        cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */,
                                   (sizeof(struct dasd_psf_prssd_data) +
                                    sizeof(struct dasd_rssd_messages)),
@@ -4714,11 +4669,10 @@ static struct dasd_conf_data *dasd_eckd_get_ref_conf(struct dasd_device *device,
                                                     __u8 lpum,
                                                     struct dasd_cuir_message *cuir)
 {
-       struct dasd_eckd_private *private;
+       struct dasd_eckd_private *private = device->private;
        struct dasd_conf_data *conf_data;
        int path, pos;
 
-       private = (struct dasd_eckd_private *) device->private;
        if (cuir->record_selector == 0)
                goto out;
        for (path = 0x80, pos = 0; path; path >>= 1, pos++) {
@@ -4743,9 +4697,9 @@ out:
 static int dasd_eckd_cuir_scope(struct dasd_device *device, __u8 lpum,
                                struct dasd_cuir_message *cuir)
 {
+       struct dasd_eckd_private *private = device->private;
        struct dasd_conf_data *ref_conf_data;
        unsigned long bitmask = 0, mask = 0;
-       struct dasd_eckd_private *private;
        struct dasd_conf_data *conf_data;
        unsigned int pos, path;
        char *ref_gneq, *gneq;
@@ -4758,7 +4712,6 @@ static int dasd_eckd_cuir_scope(struct dasd_device *device, __u8 lpum,
            !(cuir->neq_map[0] | cuir->neq_map[1] | cuir->neq_map[2]))
                return lpum;
 
-       private = (struct dasd_eckd_private *) device->private;
        /* get reference conf data */
        ref_conf_data = dasd_eckd_get_ref_conf(device, lpum, cuir);
        /* reference ned is determined by ned_map field */
@@ -4857,14 +4810,13 @@ static int dasd_eckd_cuir_quiesce(struct dasd_device *device, __u8 lpum,
                                  struct subchannel_id sch_id,
                                  struct dasd_cuir_message *cuir)
 {
+       struct dasd_eckd_private *private = device->private;
        struct alias_pav_group *pavgroup, *tempgroup;
-       struct dasd_eckd_private *private;
        struct dasd_device *dev, *n;
        unsigned long paths = 0;
        unsigned long flags;
        int tbcpm;
 
-       private = (struct dasd_eckd_private *) device->private;
        /* active devices */
        list_for_each_entry_safe(dev, n, &private->lcu->active_devices,
                                 alias_list) {
@@ -4920,13 +4872,12 @@ static int dasd_eckd_cuir_resume(struct dasd_device *device, __u8 lpum,
                                 struct subchannel_id sch_id,
                                 struct dasd_cuir_message *cuir)
 {
+       struct dasd_eckd_private *private = device->private;
        struct alias_pav_group *pavgroup, *tempgroup;
-       struct dasd_eckd_private *private;
        struct dasd_device *dev, *n;
        unsigned long paths = 0;
        int tbcpm;
 
-       private = (struct dasd_eckd_private *) device->private;
        /*
         * the path may have been added through a generic path event before
         * only trigger path verification if the path is not already in use
index c9262e7..d7b5b55 100644 (file)
@@ -125,13 +125,11 @@ locate_record(struct ccw1 * ccw, struct LO_fba_data *data, int rw,
 static int
 dasd_fba_check_characteristics(struct dasd_device *device)
 {
-       struct dasd_block *block;
-       struct dasd_fba_private *private;
+       struct dasd_fba_private *private = device->private;
        struct ccw_device *cdev = device->cdev;
-       int rc;
-       int readonly;
+       struct dasd_block *block;
+       int readonly, rc;
 
-       private = (struct dasd_fba_private *) device->private;
        if (!private) {
                private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
                if (!private) {
@@ -140,7 +138,7 @@ dasd_fba_check_characteristics(struct dasd_device *device)
                                 "data failed\n");
                        return -ENOMEM;
                }
-               device->private = (void *) private;
+               device->private = private;
        } else {
                memset(private, 0, sizeof(*private));
        }
@@ -192,10 +190,9 @@ dasd_fba_check_characteristics(struct dasd_device *device)
 
 static int dasd_fba_do_analysis(struct dasd_block *block)
 {
-       struct dasd_fba_private *private;
+       struct dasd_fba_private *private = block->base->private;
        int sb, rc;
 
-       private = (struct dasd_fba_private *) block->base->private;
        rc = dasd_check_blocksize(private->rdc_data.blk_size);
        if (rc) {
                DBF_DEV_EVENT(DBF_WARNING, block->base, "unknown blocksize %d",
@@ -254,7 +251,7 @@ static struct dasd_ccw_req *dasd_fba_build_cp(struct dasd_device * memdev,
                                              struct dasd_block *block,
                                              struct request *req)
 {
-       struct dasd_fba_private *private;
+       struct dasd_fba_private *private = block->base->private;
        unsigned long *idaws;
        struct LO_fba_data *LO_data;
        struct dasd_ccw_req *cqr;
@@ -267,7 +264,6 @@ static struct dasd_ccw_req *dasd_fba_build_cp(struct dasd_device * memdev,
        unsigned int blksize, off;
        unsigned char cmd;
 
-       private = (struct dasd_fba_private *) block->base->private;
        if (rq_data_dir(req) == READ) {
                cmd = DASD_FBA_CCW_READ;
        } else if (rq_data_dir(req) == WRITE) {
@@ -379,7 +375,7 @@ static struct dasd_ccw_req *dasd_fba_build_cp(struct dasd_device * memdev,
 static int
 dasd_fba_free_cp(struct dasd_ccw_req *cqr, struct request *req)
 {
-       struct dasd_fba_private *private;
+       struct dasd_fba_private *private = cqr->block->base->private;
        struct ccw1 *ccw;
        struct req_iterator iter;
        struct bio_vec bv;
@@ -389,7 +385,6 @@ dasd_fba_free_cp(struct dasd_ccw_req *cqr, struct request *req)
 
        if (!dasd_page_cache)
                goto out;
-       private = (struct dasd_fba_private *) cqr->block->base->private;
        blksize = cqr->block->bp_block;
        ccw = cqr->cpaddr;
        /* Skip over define extent & locate record. */
@@ -436,13 +431,14 @@ static int
 dasd_fba_fill_info(struct dasd_device * device,
                   struct dasd_information2_t * info)
 {
+       struct dasd_fba_private *private = device->private;
+
        info->label_block = 1;
        info->FBA_layout = 1;
        info->format = DASD_FORMAT_LDL;
-       info->characteristics_size = sizeof(struct dasd_fba_characteristics);
-       memcpy(info->characteristics,
-              &((struct dasd_fba_private *) device->private)->rdc_data,
-              sizeof (struct dasd_fba_characteristics));
+       info->characteristics_size = sizeof(private->rdc_data);
+       memcpy(info->characteristics, &private->rdc_data,
+              sizeof(private->rdc_data));
        info->confdata_size = 0;
        return 0;
 }
index ffd7723..8de29be 100644 (file)
@@ -445,7 +445,7 @@ struct dasd_device {
        /* Device discipline stuff. */
        struct dasd_discipline *discipline;
        struct dasd_discipline *base_discipline;
-       char *private;
+       void *private;
        struct dasd_path path_data;
 
        /* Device state and target state. */