Lines Matching refs:drv_index

175 static int deregister_disk(ctlr_info_t *h, int drv_index,
201 static void cciss_free_gendisk(ctlr_info_t *h, int drv_index);
202 static void cciss_free_drive_info(ctlr_info_t *h, int drv_index);
951 int drv_index) in cciss_create_ld_sysfs_entry() argument
955 if (h->drv[drv_index]->device_initialized) in cciss_create_ld_sysfs_entry()
958 dev = &h->drv[drv_index]->dev; in cciss_create_ld_sysfs_entry()
962 dev_set_name(dev, "c%dd%d", h->ctlr, drv_index); in cciss_create_ld_sysfs_entry()
964 h->drv[drv_index]->device_initialized = 1; in cciss_create_ld_sysfs_entry()
971 static void cciss_destroy_ld_sysfs_entry(struct ctlr_info *h, int drv_index, in cciss_destroy_ld_sysfs_entry() argument
974 struct device *dev = &h->drv[drv_index]->dev; in cciss_destroy_ld_sysfs_entry()
977 if (drv_index == 0 && !ctlr_exiting) in cciss_destroy_ld_sysfs_entry()
982 h->drv[drv_index] = NULL; in cciss_destroy_ld_sysfs_entry()
1948 int drv_index) in cciss_add_disk() argument
1953 sprintf(disk->disk_name, "cciss/c%dd%d", h->ctlr, drv_index); in cciss_add_disk()
1955 disk->first_minor = drv_index << NWD_SHIFT; in cciss_add_disk()
1957 if (cciss_create_ld_sysfs_entry(h, drv_index)) in cciss_add_disk()
1959 disk->private_data = h->drv[drv_index]; in cciss_add_disk()
1960 disk->driverfs_dev = &h->drv[drv_index]->dev; in cciss_add_disk()
1975 h->drv[drv_index]->block_size); in cciss_add_disk()
1981 h->drv[drv_index]->queue = disk->queue; in cciss_add_disk()
2002 static void cciss_update_drive_info(ctlr_info_t *h, int drv_index, in cciss_update_drive_info() argument
2021 cciss_read_capacity_16(h, drv_index, in cciss_update_drive_info()
2025 cciss_read_capacity(h, drv_index, &total_size, &block_size); in cciss_update_drive_info()
2030 cciss_read_capacity_16(h, drv_index, in cciss_update_drive_info()
2040 cciss_geometry_inquiry(h, drv_index, total_size, block_size, in cciss_update_drive_info()
2045 cciss_get_device_descr(h, drv_index, drvinfo->vendor, in cciss_update_drive_info()
2047 cciss_get_serial_no(h, drv_index, drvinfo->serial_no, in cciss_update_drive_info()
2050 memcpy(drvinfo->LunID, h->drv[drv_index]->LunID, in cciss_update_drive_info()
2054 if (h->drv[drv_index]->raid_level != -1 && in cciss_update_drive_info()
2056 h->drv[drv_index]->serial_no, 16) == 0) && in cciss_update_drive_info()
2057 drvinfo->block_size == h->drv[drv_index]->block_size && in cciss_update_drive_info()
2058 drvinfo->nr_blocks == h->drv[drv_index]->nr_blocks && in cciss_update_drive_info()
2059 drvinfo->heads == h->drv[drv_index]->heads && in cciss_update_drive_info()
2060 drvinfo->sectors == h->drv[drv_index]->sectors && in cciss_update_drive_info()
2061 drvinfo->cylinders == h->drv[drv_index]->cylinders)) in cciss_update_drive_info()
2071 if (h->drv[drv_index]->raid_level != -1 && drv_index != 0) { in cciss_update_drive_info()
2072 dev_warn(&h->pdev->dev, "disk %d has changed.\n", drv_index); in cciss_update_drive_info()
2074 h->drv[drv_index]->busy_configuring = 1; in cciss_update_drive_info()
2081 ret = deregister_disk(h, drv_index, 0, via_ioctl); in cciss_update_drive_info()
2092 if (h->drv[drv_index] == NULL) { in cciss_update_drive_info()
2094 h->drv[drv_index] = drvinfo; in cciss_update_drive_info()
2098 h->drv[drv_index]->block_size = drvinfo->block_size; in cciss_update_drive_info()
2099 h->drv[drv_index]->nr_blocks = drvinfo->nr_blocks; in cciss_update_drive_info()
2100 h->drv[drv_index]->heads = drvinfo->heads; in cciss_update_drive_info()
2101 h->drv[drv_index]->sectors = drvinfo->sectors; in cciss_update_drive_info()
2102 h->drv[drv_index]->cylinders = drvinfo->cylinders; in cciss_update_drive_info()
2103 h->drv[drv_index]->raid_level = drvinfo->raid_level; in cciss_update_drive_info()
2104 memcpy(h->drv[drv_index]->serial_no, drvinfo->serial_no, 16); in cciss_update_drive_info()
2105 memcpy(h->drv[drv_index]->vendor, drvinfo->vendor, in cciss_update_drive_info()
2107 memcpy(h->drv[drv_index]->model, drvinfo->model, MODEL_LEN + 1); in cciss_update_drive_info()
2108 memcpy(h->drv[drv_index]->rev, drvinfo->rev, REV_LEN + 1); in cciss_update_drive_info()
2112 disk = h->gendisk[drv_index]; in cciss_update_drive_info()
2113 set_capacity(disk, h->drv[drv_index]->nr_blocks); in cciss_update_drive_info()
2121 if (drv_index || first_time) { in cciss_update_drive_info()
2122 if (cciss_add_disk(h, disk, drv_index) != 0) { in cciss_update_drive_info()
2123 cciss_free_gendisk(h, drv_index); in cciss_update_drive_info()
2124 cciss_free_drive_info(h, drv_index); in cciss_update_drive_info()
2126 drv_index); in cciss_update_drive_info()
2193 static void cciss_free_drive_info(ctlr_info_t *h, int drv_index) in cciss_free_drive_info() argument
2195 kfree(h->drv[drv_index]); in cciss_free_drive_info()
2196 h->drv[drv_index] = NULL; in cciss_free_drive_info()
2199 static void cciss_free_gendisk(ctlr_info_t *h, int drv_index) in cciss_free_gendisk() argument
2201 put_disk(h->gendisk[drv_index]); in cciss_free_gendisk()
2202 h->gendisk[drv_index] = NULL; in cciss_free_gendisk()
2217 int drv_index; in cciss_add_gendisk() local
2219 drv_index = cciss_alloc_drive_info(h, controller_node); in cciss_add_gendisk()
2220 if (drv_index == -1) in cciss_add_gendisk()
2224 if (!h->gendisk[drv_index]) { in cciss_add_gendisk()
2225 h->gendisk[drv_index] = in cciss_add_gendisk()
2227 if (!h->gendisk[drv_index]) { in cciss_add_gendisk()
2230 drv_index); in cciss_add_gendisk()
2234 memcpy(h->drv[drv_index]->LunID, lunid, in cciss_add_gendisk()
2235 sizeof(h->drv[drv_index]->LunID)); in cciss_add_gendisk()
2236 if (cciss_create_ld_sysfs_entry(h, drv_index)) in cciss_add_gendisk()
2241 h->drv[drv_index]->busy_configuring = 0; in cciss_add_gendisk()
2243 return drv_index; in cciss_add_gendisk()
2246 cciss_free_gendisk(h, drv_index); in cciss_add_gendisk()
2248 cciss_free_drive_info(h, drv_index); in cciss_add_gendisk()
2260 int drv_index; in cciss_add_controller_node() local
2265 drv_index = cciss_add_gendisk(h, CTLR_LUNID, 1); in cciss_add_controller_node()
2266 if (drv_index == -1) in cciss_add_controller_node()
2268 h->drv[drv_index]->block_size = 512; in cciss_add_controller_node()
2269 h->drv[drv_index]->nr_blocks = 0; in cciss_add_controller_node()
2270 h->drv[drv_index]->heads = 0; in cciss_add_controller_node()
2271 h->drv[drv_index]->sectors = 0; in cciss_add_controller_node()
2272 h->drv[drv_index]->cylinders = 0; in cciss_add_controller_node()
2273 h->drv[drv_index]->raid_level = -1; in cciss_add_controller_node()
2274 memset(h->drv[drv_index]->serial_no, 0, 16); in cciss_add_controller_node()
2275 disk = h->gendisk[drv_index]; in cciss_add_controller_node()
2276 if (cciss_add_disk(h, disk, drv_index) == 0) in cciss_add_controller_node()
2278 cciss_free_gendisk(h, drv_index); in cciss_add_controller_node()
2279 cciss_free_drive_info(h, drv_index); in cciss_add_controller_node()
2302 int drv_index = 0; in rebuild_lun_table() local
2398 drv_index = j; in rebuild_lun_table()
2406 drv_index = cciss_add_gendisk(h, lunid, 0); in rebuild_lun_table()
2407 if (drv_index == -1) in rebuild_lun_table()
2410 cciss_update_drive_info(h, drv_index, first_time, via_ioctl); in rebuild_lun_table()
2467 static int deregister_disk(ctlr_info_t *h, int drv_index, in deregister_disk() argument
2478 drv = h->drv[drv_index]; in deregister_disk()
2479 disk = h->gendisk[drv_index]; in deregister_disk()
2497 cciss_destroy_ld_sysfs_entry(h, drv_index, 0); in deregister_disk()