raid_data
mutex_init(&ioc->raid_data.inactive_list_mutex);
INIT_LIST_HEAD(&ioc->raid_data.inactive_list);
kfree(ioc->raid_data.pIocPg2);
kfree(ioc->raid_data.pIocPg3);
ioc->raid_data.pIocPg3 = NULL;
if (list_empty(&ioc->raid_data.inactive_list))
mutex_lock(&ioc->raid_data.inactive_list_mutex);
&ioc->raid_data.inactive_list, list) {
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
mutex_lock(&ioc->raid_data.inactive_list_mutex);
&ioc->raid_data.inactive_list);
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
kfree(ioc->raid_data.pIocPg2);
ioc->raid_data.pIocPg2 = NULL;
ioc->raid_data.pIocPg2 = (IOCPage2_t *) mem;
kfree(ioc->raid_data.pIocPg3);
ioc->raid_data.pIocPg3 = NULL;
ioc->raid_data.pIocPg3 = (IOCPage3_t *) mem;
RaidCfgData raid_data; /* Raid config. data */
if (!ioc->raid_data.pIocPg2) {
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
if (id == ioc->raid_data.pIocPg2->
channel = ioc->raid_data.pIocPg2->
if (!ioc->ir_firmware || !ioc->raid_data.pIocPg2 ||
!ioc->raid_data.pIocPg2->NumActiveVolumes)
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID, 0);
ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID);
ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID, 0);
if (!ioc->raid_data.pIocPg3)
if (!ioc->raid_data.pIocPg2)
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID ==
if (!ioc->raid_data.pIocPg2)
if (!ioc->raid_data.pIocPg2->NumActiveVolumes)
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++)
if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID == id)
if (!ioc->raid_data.pIocPg3)
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
if ((id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) &&
(channel == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskBus)) {
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum);
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum,
if (list_empty(&ioc->raid_data.inactive_list))
mutex_lock(&ioc->raid_data.inactive_list_mutex);
list_for_each_entry(component_info, &ioc->raid_data.inactive_list,
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
if (!ioc->raid_data.pIocPg3)
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
if ((id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) &&
(channel == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskBus)) {
rc = ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum;
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum);
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum,
if (list_empty(&ioc->raid_data.inactive_list))
mutex_lock(&ioc->raid_data.inactive_list_mutex);
list_for_each_entry(component_info, &ioc->raid_data.inactive_list,
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
pg3 = ioc->raid_data.pIocPg3;
if (!ioc->raid_data.pIocPg2)
if (!ioc->raid_data.pIocPg2->NumActiveVolumes)
for (i=0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID == id) {
struct raid_data *rd = dev_get_drvdata(dev); \
struct raid_data *rd;
struct raid_data *rd = dev_get_drvdata(cdev);
struct raid_data *rd; \
struct raid_data *rd; \