diff options
author | Hannes Reinecke <hare@suse.de> | 2006-03-01 20:07:20 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2006-03-01 20:07:20 +0100 |
commit | 226c074d6d27a789a1dfba869f993b53fe135958 (patch) | |
tree | 1894ac1bd7b9b2bc43f9437b615255c38d02282d /extras/path_id | |
parent | 5016ef53f52feddb0beb202c7b4c0a299cd835bd (diff) |
path_id: support SAS devices
Diffstat (limited to 'extras/path_id')
-rw-r--r--[-rwxr-xr-x] | extras/path_id | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/extras/path_id b/extras/path_id index 73d5c834dd..324fe825b6 100755..100644 --- a/extras/path_id +++ b/extras/path_id @@ -288,6 +288,48 @@ handle_block_fc () { RESULT=0 } +handle_block_sas () { + : handle_block_sas $* + local DEV=$1 + local cil adapter controller_dev + # SAS device + sas_host_path="${DEV%%/phy*}" + sas_phy_path="${DEV#*/host*/}" + sas_phy_path="${sas_phy_path%%/target*}" + sas_phy_id="${sas_phy_path%%/*}" + sas_rphy_id="${sas_phy_path##*/}" + sas_phy_dev="${sas_host_path}/${sas_phy_id}/sas_phy:${sas_phy_id}" + if [ -e "$sas_phy_dev/sas_address" ]; then + read phy_address < $sas_phy_dev/sas_address + read phy_port < $sas_phy_dev/port_identifier + read phy_id < $sas_phy_dev/phy_identifier + fi + if [ -z "$phy_address" ] ; then + : no initiator address + RESULT=1 + return + fi + sas_phy_address="$phy_address:$phy_port:$phy_id" + sas_rphy_dev="${sas_host_path}/${sas_phy_id}/${sas_rphy_id}/sas_rphy:${sas_rphy_id}" + if [ -e "$sas_rphy_dev/sas_address" ]; then + read rphy_address < $sas_rphy_dev/sas_address + read rphy_id < $sas_rphy_dev/phy_identifier + fi + if [ -z "$rphy_address" ] ; then + : no initiator address + RESULT=1 + return + fi + sas_rphy_address="$rphy_address:$rphy_id" + + controller_dev="${sas_host_path%/host[0-9]*}" + adapter="${controller_dev##*/}" + bus="pci" + d="$bus-$adapter" + d="${d}-sas-${sas_phy_address}-${sas_rphy_address}" + RESULT=0 +} + handle_block_usb_storage () { : handle_block_usb_storage $* local DEV=$1 @@ -396,6 +438,9 @@ handle_block () { */rport-[0-9]*:[0-9]*-[0-9]*/*) handle_block_fc "$D" ;; + */phy-[0-9]*:[0-9]*/*) + handle_block_sas "$D" + ;; */host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*) # check for ieee1394 sbp2 if test -f $D/ieee1394_id ; then |