]> err.no Git - linux-2.6/blobdiff - drivers/scsi/scsi_transport_sas.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild
[linux-2.6] / drivers / scsi / scsi_transport_sas.c
index f6f7fecc0ad16bf27a35d0c1dfc36535b72bf884..8b6d65e21bae3a23ac362d65ac9b95d57732b6f3 100644 (file)
 #include <scsi/scsi_transport.h>
 #include <scsi/scsi_transport_sas.h>
 
-
-#define SAS_HOST_ATTRS         0
-#define SAS_PORT_ATTRS         17
-#define SAS_RPORT_ATTRS                7
-#define SAS_END_DEV_ATTRS      3
-#define SAS_EXPANDER_ATTRS     7
-
-struct sas_internal {
-       struct scsi_transport_template t;
-       struct sas_function_template *f;
-
-       struct class_device_attribute private_host_attrs[SAS_HOST_ATTRS];
-       struct class_device_attribute private_phy_attrs[SAS_PORT_ATTRS];
-       struct class_device_attribute private_rphy_attrs[SAS_RPORT_ATTRS];
-       struct class_device_attribute private_end_dev_attrs[SAS_END_DEV_ATTRS];
-       struct class_device_attribute private_expander_attrs[SAS_EXPANDER_ATTRS];
-
-       struct transport_container phy_attr_cont;
-       struct transport_container rphy_attr_cont;
-       struct transport_container end_dev_attr_cont;
-       struct transport_container expander_attr_cont;
-
-       /*
-        * The array of null terminated pointers to attributes
-        * needed by scsi_sysfs.c
-        */
-       struct class_device_attribute *host_attrs[SAS_HOST_ATTRS + 1];
-       struct class_device_attribute *phy_attrs[SAS_PORT_ATTRS + 1];
-       struct class_device_attribute *rphy_attrs[SAS_RPORT_ATTRS + 1];
-       struct class_device_attribute *end_dev_attrs[SAS_END_DEV_ATTRS + 1];
-       struct class_device_attribute *expander_attrs[SAS_EXPANDER_ATTRS + 1];
-};
-#define to_sas_internal(tmpl)  container_of(tmpl, struct sas_internal, t)
-
+#include "scsi_sas_internal.h"
 struct sas_host_attrs {
        struct list_head rphy_list;
        struct mutex lock;
@@ -878,6 +845,8 @@ int sas_rphy_add(struct sas_rphy *rphy)
            (identify->target_port_protocols &
             (SAS_PROTOCOL_SSP|SAS_PROTOCOL_STP|SAS_PROTOCOL_SATA)))
                rphy->scsi_target_id = sas_host->next_target_id++;
+       else if (identify->device_type == SAS_END_DEVICE)
+               rphy->scsi_target_id = -1;
        mutex_unlock(&sas_host->lock);
 
        if (identify->device_type == SAS_END_DEVICE &&