Lines Matching refs:raid_map

1419 	struct pqi_scsi_dev *device, struct raid_map *raid_map)  in pqi_validate_raid_map()  argument
1425 raid_map_size = get_unaligned_le32(&raid_map->structure_size); in pqi_validate_raid_map()
1427 if (raid_map_size < offsetof(struct raid_map, disk_data)) { in pqi_validate_raid_map()
1433 if (get_unaligned_le16(&raid_map->layout_map_count) != 2) { in pqi_validate_raid_map()
1438 if (get_unaligned_le16(&raid_map->layout_map_count) != 3) { in pqi_validate_raid_map()
1444 get_unaligned_le16(&raid_map->layout_map_count) > 1) { in pqi_validate_raid_map()
1447 get_unaligned_le16(&raid_map->strip_size) * in pqi_validate_raid_map()
1448 get_unaligned_le16(&raid_map->data_disks_per_row); in pqi_validate_raid_map()
1471 struct raid_map *raid_map; in pqi_get_raid_map() local
1473 raid_map = kmalloc(sizeof(*raid_map), GFP_KERNEL); in pqi_get_raid_map()
1474 if (!raid_map) in pqi_get_raid_map()
1478 device->scsi3addr, raid_map, sizeof(*raid_map), 0, NULL); in pqi_get_raid_map()
1482 raid_map_size = get_unaligned_le32(&raid_map->structure_size); in pqi_get_raid_map()
1484 if (raid_map_size > sizeof(*raid_map)) { in pqi_get_raid_map()
1486 kfree(raid_map); in pqi_get_raid_map()
1488 raid_map = kmalloc(raid_map_size, GFP_KERNEL); in pqi_get_raid_map()
1489 if (!raid_map) in pqi_get_raid_map()
1493 device->scsi3addr, raid_map, raid_map_size, 0, NULL); in pqi_get_raid_map()
1497 if (get_unaligned_le32(&raid_map->structure_size) in pqi_get_raid_map()
1502 get_unaligned_le32(&raid_map->structure_size)); in pqi_get_raid_map()
1508 rc = pqi_validate_raid_map(ctrl_info, device, raid_map); in pqi_get_raid_map()
1512 device->raid_map = raid_map; in pqi_get_raid_map()
1517 kfree(raid_map); in pqi_get_raid_map()
1582 if (get_unaligned_le16(&device->raid_map->flags) & in pqi_get_raid_bypass_status()
2050 static bool pqi_raid_maps_equal(struct raid_map *raid_map1, struct raid_map *raid_map2) in pqi_raid_maps_equal()
2099 if (!pqi_raid_maps_equal(existing_device->raid_map, new_device->raid_map)) { in pqi_scsi_update_device()
2100 kfree(existing_device->raid_map); in pqi_scsi_update_device()
2101 existing_device->raid_map = new_device->raid_map; in pqi_scsi_update_device()
2103 new_device->raid_map = NULL; in pqi_scsi_update_device()
2127 kfree(device->raid_map); in pqi_free_device()
2609 struct raid_map *raid_map, u64 first_block) in pqi_set_encryption_info() argument
2618 volume_blk_size = get_unaligned_le32(&raid_map->volume_blk_size); in pqi_set_encryption_info()
2623 get_unaligned_le16(&raid_map->data_encryption_key_index); in pqi_set_encryption_info()
2717 struct pqi_scsi_dev_raid_map_data *rmd, struct raid_map *raid_map) in pci_get_aio_common_raid_map_values() argument
2727 get_unaligned_le64(&raid_map->volume_blk_cnt) || in pci_get_aio_common_raid_map_values()
2732 get_unaligned_le16(&raid_map->data_disks_per_row); in pci_get_aio_common_raid_map_values()
2733 rmd->strip_size = get_unaligned_le16(&raid_map->strip_size); in pci_get_aio_common_raid_map_values()
2734 rmd->layout_map_count = get_unaligned_le16(&raid_map->layout_map_count); in pci_get_aio_common_raid_map_values()
2773 get_unaligned_le16(&raid_map->metadata_disks_per_row); in pci_get_aio_common_raid_map_values()
2775 raid_map->parity_rotation_shift)) % in pci_get_aio_common_raid_map_values()
2776 get_unaligned_le16(&raid_map->row_cnt); in pci_get_aio_common_raid_map_values()
2784 struct raid_map *raid_map) in pqi_calc_aio_r5_or_r6() argument
2867 ((u32)(rmd->first_row >> raid_map->parity_rotation_shift)) % in pqi_calc_aio_r5_or_r6()
2868 get_unaligned_le16(&raid_map->row_cnt); in pqi_calc_aio_r5_or_r6()
2871 (get_unaligned_le16(&raid_map->row_cnt) * in pqi_calc_aio_r5_or_r6()
2889 index -= get_unaligned_le16(&raid_map->metadata_disks_per_row); in pqi_calc_aio_r5_or_r6()
2891 rmd->p_parity_it_nexus = raid_map->disk_data[index].aio_handle; in pqi_calc_aio_r5_or_r6()
2893 rmd->q_parity_it_nexus = raid_map->disk_data[index + 1].aio_handle; in pqi_calc_aio_r5_or_r6()
2894 rmd->xor_mult = raid_map->disk_data[rmd->map_index].xor_mult[1]; in pqi_calc_aio_r5_or_r6()
2930 static void pqi_calc_aio_r1_nexus(struct raid_map *raid_map, in pqi_calc_aio_r1_nexus() argument
2939 rmd->it_nexus[0] = raid_map->disk_data[index].aio_handle; in pqi_calc_aio_r1_nexus()
2941 rmd->it_nexus[1] = raid_map->disk_data[index].aio_handle; in pqi_calc_aio_r1_nexus()
2944 rmd->it_nexus[2] = raid_map->disk_data[index].aio_handle; in pqi_calc_aio_r1_nexus()
2955 struct raid_map *raid_map; in pqi_raid_bypass_submit_scsi_cmd() local
2974 raid_map = device->raid_map; in pqi_raid_bypass_submit_scsi_cmd()
2976 rc = pci_get_aio_common_raid_map_values(ctrl_info, &rmd, raid_map); in pqi_raid_bypass_submit_scsi_cmd()
2983 pqi_calc_aio_r1_nexus(raid_map, &rmd); in pqi_raid_bypass_submit_scsi_cmd()
2995 rc = pqi_calc_aio_r5_or_r6(&rmd, raid_map); in pqi_raid_bypass_submit_scsi_cmd()
3003 rmd.aio_handle = raid_map->disk_data[rmd.map_index].aio_handle; in pqi_raid_bypass_submit_scsi_cmd()
3004 rmd.disk_block = get_unaligned_le64(&raid_map->disk_starting_blk) + in pqi_raid_bypass_submit_scsi_cmd()
3010 if (raid_map->phys_blk_shift) { in pqi_raid_bypass_submit_scsi_cmd()
3011 rmd.disk_block <<= raid_map->phys_blk_shift; in pqi_raid_bypass_submit_scsi_cmd()
3012 rmd.disk_block_cnt <<= raid_map->phys_blk_shift; in pqi_raid_bypass_submit_scsi_cmd()
3020 if (get_unaligned_le16(&raid_map->flags) & RAID_MAP_ENCRYPTION_ENABLED) { in pqi_raid_bypass_submit_scsi_cmd()
3023 pqi_set_encryption_info(&encryption_info, raid_map, rmd.first_block); in pqi_raid_bypass_submit_scsi_cmd()