summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_transport_sas.c
Commit message (Collapse)AuthorAgeFilesLines
* [SCSI] scsi_transport_sas: introduce a sas_port entityJames Bottomley2006-06-281-38/+333
| | | | | | | this patch introduces a port object, separates out ports and phys, with ports becoming the primary objects of the tree. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_transport_sas: fix panic in sas_free_rphyJames Bottomley2006-06-121-0/+14
| | | | | | | | This is a hold over from the end device/expander conversion. Apparently the rphy list pointer is never initialised, so list_del() on the uninitialised pointer can panic the system Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge ../linux-2.6James Bottomley2006-06-101-2/+2
|\
| * [SCSI] scsi_transport_sas: make write attrs writeableEric Moore2006-05-201-1/+0Star
| | | | | | | | | | | | | | | | | | | | A couple write attributes in sas transport layer have a small bug that prevents them from being written to. Those attributes are the link_reset and write_reset. This is due the store field being set to NULL. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] scsi_transport_sas; fix user_scanJames Bottomley2006-05-201-1/+2
| | | | | | | | | | | | | | | | | | the user_scan() callback currently has the potential to identify the wrong device in the presence of expanders. This is because it finds the first device with a matching target_id, which might be an expander. Fix this by making it look specifically for end devices. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [SCSI] drivers/scsi: Use ARRAY_SIZE macroTobias Klauser2006-06-101-2/+2
|/ | | | | | | | | Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove duplicates of the macro. Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_transport_sas: don't scan a non-existent end deviceJames Bottomley2006-04-141-0/+2
| | | | | | | | Any end device that can't support any of the scanning protocols shouldn't be scanned, so set its id to -1 to prevent scsi_scan_target() being called for it. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] expose sas internal class for the domain transportJames Bottomley2006-04-131-34/+1Star
| | | | | | necessary to make the domain class use the internal structures Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas transport: ref count updateMike Anderson2006-04-131-24/+6Star
| | | | | | | Fix puts so that release functions will be called. Signed-off-by: Mike Anderson <andmike@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] eliminate rphy allocation in favour of expander/end device allocationJames Bottomley2006-03-191-45/+27Star
| | | | | | | This allows the removal of the contained flag and also does a bit of class renaming (sas_rphy->sas_device). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] add preliminary expander support to the sas transport classJames Bottomley2006-03-141-6/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes expanders appear as labelled objects with properties in the SAS tree. I've also modified the phy code to make expander phys appear labelled by host number, expander number and phy index. So, for my current config, you see something like this in sysfs: /sys/class/scsi_host/host1/device/phy-1:4/expander-1:0/phy-1-0:12/rphy-1:0-12/target1:0:1 And the expander properties are: jejb@sparkweed> cd /sys/class/sas_expander/expander-1\:0/ jejb@sparkweed> for f in *; do echo -n $f ": "; cat $f; done component_id : 29024 component_revision_id : 4 component_vendor_id : VITESSE device : cat: device: Is a directory level : 0 product_id : VSC7160 Eval Brd product_rev : 4 uevent : cat: uevent: Permission denied vendor_id : VITESSE Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] add missing transport_container_unregister in sas classJames Bottomley2006-03-101-0/+1
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [PATCH] convert aic94xx over to using the sas transport end deviceJames Bottomley2006-03-061-34/+165
| | | | | | | | | Begin introducing the concept of sas remote devices that have an rphy embedded. The first one (this) is a simple end device. All that an end device really does is have port mode page parameters contained. The next and more complex piece will be expander remote devices. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] make some sas class properties optionalJames Bottomley2006-03-031-5/+31
| | | | | | | | | aic94xx doesn't have a use for the bay or enclosure identifiers. Also, I think it's not going to need a get_linkerrors(), so wire up all of these exported properties as conditional on the underlying function support. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] add 6.0 Gbit phy definitions to the sas transport classJames Bottomley2006-03-031-0/+1
| | | | | | | I don't think these exist in silicon yet, but the aic94xx driver has a register setting for them. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas: add support for enclosure and bad ID rphy attributesChristoph Hellwig2006-02-281-2/+51
| | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] SCSI core kmalloc2kzallocJes Sorensen2006-02-281-6/+3Star
| | | | | | | | Change the core SCSI code to use kzalloc rather than kmalloc+memset where possible. Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_transport_sas.c: display port identifierMoore, Eric2006-01-311-3/+3
| | | | | | | | | | | | | This patch displays the port identifier on the folder attribute; located in the middle digit. /sys/class/sas_rphy/rphy-%x:%x:%x The port identifier is basically the unique identifier for each sas domain. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_transport_sas: mapping the rphy channel equal to the port identifierMoore, Eric2006-01-141-3/+3
| | | | | | | | | | | We will be mapping the RAID volumes in mptsas to a reserved channel that is one larger than the anticapated number of ports on the direct attached host adapter. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] remove target parent limitiationChristoph Hellwig2006-01-141-18/+24
| | | | | | | | | | | | | | | | | | | | | | | | | When James Smart fixed the issue of the userspace scan atributes crashing the system with the FC transport class he added a patch to let the transport class check if the parent is valid for a given transport class. When adding support for the integrated raid of fusion sas devices we ran into a problem with that, as it didn't allow adding virtual raid volumes without the transport class knowing about it. So this patch adds a user_scan attribute instead, that takes over from scsi_scan_host_selected if the transport class sets it and thus lets the transport class control the user-initiated scanning. As this plugs the hole about user-initiated scanning the target_parent hook goes away and we rely on callers of the scanning routines to do something sensible. For SAS this meant I had to switch from a spinlock to a mutex to synchronize the topology linked lists, in FC they were completely unsynchronized which seems wrong. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas: fix removal of devices behind expandersChristoph Hellwig2006-01-141-1/+11
| | | | | | | | | | | | We need to iterate over all children when removing and expander, else stale objects will be around after host removal. This fixes the oops Eric Moore saw when removing and reloading mptsas. Also don't try the scsi_remove_target call unless operating on an end device. The current unconditional call is harmless but confusing. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas: clear parent->rphy in sas_rphy_deleteChristoph Hellwig2006-01-121-0/+2
| | | | | | | | We need to clear the backpointer on rphy removal, else we'll run into problems with host removal after a device has been hot unplugged. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [PATCH] fix remaining missing includesTim Schmielau2005-11-071-0/+2
| | | | | | | | | | Fix more include file problems that surfaced since I submitted the previous fix-missing-includes.patch. This should now allow not to include sched.h from module.h, which is done by a followup patch. Signed-off-by: Tim Schmielau <tim@physik3.uni-rostock.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SCSI] sas: add support for PHY resetsChristoph Hellwig2005-10-291-2/+41
| | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas: add flag for locally attached PHYsChristoph Hellwig2005-10-291-0/+3
| | | | | | | | | | | Add a flag to mark a PHY as attached to the HBA as opposed to beeing on an expander. This is needed because various features are only supported on those. This is a crude hack, the proper fix would be to use different classes for host-attached vs expander phys. I'm looking into that. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_transport_sas: support link error attributesChristoph Hellwig2005-10-281-1/+30
| | | | | | | | | For now supporting the ->get_linkerrors method is mandatory. I'll probably be beaten to implement the .show_foo variables and different types of attributes soon.. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas: fix remote phy removalChristoph Hellwig2005-09-261-5/+4Star
| | | | | | | | | | Brown paperbag bug: sas_rphy_delete was ordered completely wrong. Fix it up to be the same order as sas_phy_delete or fc_rport_terminate and fix rphy objects that leaked after module removal. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] SAS transport class: fixup prototype of sas_host_setupJames Bottomley2005-09-101-1/+2
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] SAS transport classChristoph Hellwig2005-09-091-0/+819
The SAS transport class contains common code to deal with SAS HBAs, an aproximated representation of SAS topologies in the driver model, and various sysfs attributes to expose these topologies and managment interfaces to userspace. In addition to the basic SCSI core objects this transport class introduces two additional intermediate objects: The SAS PHY as represented by struct sas_phy defines an "outgoing" PHY on a SAS HBA or Expander, and the SAS remote PHY represented by struct sas_rphy defines an "incoming" PHY on a SAS Expander or end device. Note that this is purely a software concept, the underlying hardware for a PHY and a remote PHY is the exactly the same. There is no concept of a SAS port in this code, users can see what PHYs form a wide port based on the port_identifier attribute, which is the same for all PHYs in a port. This submission doesn't handle hot-plug addition or removal of SAS devices and thus doesn't do scanning in a workqueue yet, that will be added in phase2 after this submission. In a third phase I will add additional managment infrastructure. I think this submission is ready for 2.6.14, but additional comments are of course very welcome. I'd like to thanks James Smart a lot for his very useful input on the design. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>