* [PATCH] fusion - adding raid support in mptsas
@ 2006-01-13 23:25 Moore, Eric
2006-01-14 11:30 ` Christoph Hellwig
0 siblings, 1 reply; 2+ messages in thread
From: Moore, Eric @ 2006-01-13 23:25 UTC (permalink / raw)
To: linux-scsi, hch, James.Bottomley
The SAS RAID volumes are reported beyond the expected number of phys.
Signed-off-by: Eric Moore <Eric.Moore@lsil.com>
diff -uarN b/drivers/message/fusion/mptbase.h
a/drivers/message/fusion/mptbase.h
--- b/drivers/message/fusion/mptbase.h 2006-01-13 13:51:07.000000000
-0700
+++ a/drivers/message/fusion/mptbase.h 2006-01-13 15:10:43.000000000
-0700
@@ -630,6 +630,7 @@
struct list_head sas_topology;
struct mutex sas_topology_mutex;
MPT_SAS_MGMT sas_mgmt;
+ int num_ports;
struct list_head fc_rports;
spinlock_t fc_rport_lock; /* list and ri flags */
diff -uarN b/drivers/message/fusion/mptsas.c
a/drivers/message/fusion/mptsas.c
--- b/drivers/message/fusion/mptsas.c 2006-01-13 11:39:21.000000000
-0700
+++ a/drivers/message/fusion/mptsas.c 2006-01-13 15:24:35.000000000
-0700
@@ -274,6 +274,16 @@
hd->Targets[sdev->id] = vtarget;
}
+ /*
+ RAID volumes placed beyond the last expected port.
+ */
+ if (sdev->channel == hd->ioc->num_ports) {
+ vdev->target_id = sdev->id;
+ vdev->bus_id = 0;
+ vdev->lun = 0;
+ goto out;
+ }
+
rphy = dev_to_rphy(sdev->sdev_target->dev.parent);
mutex_lock(&hd->ioc->sas_topology_mutex);
list_for_each_entry(p, &hd->ioc->sas_topology, list) {
@@ -284,6 +294,7 @@
p->phy_info[i].attached.id;
vdev->bus_id =
p->phy_info[i].attached.channel;
vdev->lun = sdev->lun;
+
mutex_unlock(&hd->ioc->sas_topology_mutex);
goto out;
}
}
@@ -295,7 +306,6 @@
return -ENODEV;
out:
- mutex_unlock(&hd->ioc->sas_topology_mutex);
vtarget->ioc_id = vdev->ioc_id;
vtarget->target_id = vdev->target_id;
vtarget->bus_id = vdev->bus_id;
@@ -1051,6 +1061,7 @@
if (error)
goto out_free_port_info;
+ ioc->num_ports = port_info->num_phys;
mutex_lock(&ioc->sas_topology_mutex);
list_add_tail(&port_info->list, &ioc->sas_topology);
mutex_unlock(&ioc->sas_topology_mutex);
@@ -1585,6 +1596,20 @@
mptsas_scan_sas_topology(ioc);
+ /*
+ Reporting RAID volumes.
+ */
+ if (!ioc->raid_data.pIocPg2)
+ return 0;
+ if (!ioc->raid_data.pIocPg2->NumActiveVolumes)
+ return 0;
+ for (ii=0;ii<ioc->raid_data.pIocPg2->NumActiveVolumes;ii++) {
+ scsi_add_device(sh,
+ ioc->num_ports,
+ ioc->raid_data.pIocPg2->RaidVolume[ii].VolumeID,
+ 0);
+ }
+
return 0;
out_mptsas_probe:
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] fusion - adding raid support in mptsas
2006-01-13 23:25 [PATCH] fusion - adding raid support in mptsas Moore, Eric
@ 2006-01-14 11:30 ` Christoph Hellwig
0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2006-01-14 11:30 UTC (permalink / raw)
To: Moore, Eric; +Cc: linux-scsi, hch, James.Bottomley
On Fri, Jan 13, 2006 at 04:25:20PM -0700, Moore, Eric wrote:
> The SAS RAID volumes are reported beyond the expected number of phys.
>
> Signed-off-by: Eric Moore <Eric.Moore@lsil.com>
looks good.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-01-14 11:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-13 23:25 [PATCH] fusion - adding raid support in mptsas Moore, Eric
2006-01-14 11:30 ` Christoph Hellwig
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.