Re: [PATCH 1/4] sas: add flag for locally attached PHYs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/19/05 14:01, Christoph Hellwig wrote:
> 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.

The phy isn't quite "attached" -- i.e. at software level you do not
care about that.  At least I've never heard anyone (not of "the community")
say that a phy is "attached".

You don't need to represent that.  While you can, you completely do not
need to do it.  All you should care about is the _port_.  Take a look
at SAS section 4.

Also take a look at:
drivers/scsi/sas/sas_phy.c,
drivers/scsi/sas/sas_port.c and
drivers/scsi/sas/sas_discover.c .

Storage GUI applications can read the expander configuration using SMP
and show this as I've shown in Announcement 1 here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112629509826900&w=2

All you should care about is the _local_ phys since those are
under your control, and the port formed.

	Luben


> 
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> 
> Index: linux-2.6/drivers/message/fusion/mptsas.c
> ===================================================================
> --- linux-2.6.orig/drivers/message/fusion/mptsas.c	2005-10-19 15:30:29.000000000 +0200
> +++ linux-2.6/drivers/message/fusion/mptsas.c	2005-10-19 19:49:35.000000000 +0200
> @@ -760,7 +760,7 @@
>  }
>  
>  static int mptsas_probe_one_phy(struct device *dev,
> -		struct mptsas_phyinfo *phy_info, int index)
> +		struct mptsas_phyinfo *phy_info, int index, int local)
>  {
>  	struct sas_phy *port;
>  	int error;
> @@ -853,6 +853,9 @@
>  		break;
>  	}
>  
> +	if (local)
> +		port->local_attached = 1;
> +
>  	error = sas_phy_add(port);
>  	if (error) {
>  		sas_phy_free(port);
> @@ -918,7 +921,7 @@
>  		}
>  
>  		mptsas_probe_one_phy(&ioc->sh->shost_gendev,
> -				     &port_info->phy_info[i], *index);
> +				     &port_info->phy_info[i], *index, 1);
>  		(*index)++;
>  	}
>  
> @@ -989,7 +992,8 @@
>  			}
>  		}
>  
> -		mptsas_probe_one_phy(parent, &port_info->phy_info[i], *index);
> +		mptsas_probe_one_phy(parent, &port_info->phy_info[i],
> +				     *index, 0);
>  		(*index)++;
>  	}
>  
> Index: linux-2.6/include/scsi/scsi_transport_sas.h
> ===================================================================
> --- linux-2.6.orig/include/scsi/scsi_transport_sas.h	2005-10-19 15:30:29.000000000 +0200
> +++ linux-2.6/include/scsi/scsi_transport_sas.h	2005-10-19 19:49:35.000000000 +0200
> @@ -56,6 +56,9 @@
>  	enum sas_linkrate	maximum_linkrate;
>  	u8			port_identifier;
>  
> +	/* internal state */
> +	unsigned int		local_attached : 1;
> +
>  	/* link error statistics */
>  	u32			invalid_dword_count;
>  	u32			running_disparity_error_count;
> Index: linux-2.6/drivers/scsi/scsi_transport_sas.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/scsi_transport_sas.c	2005-10-19 19:49:35.000000000 +0200
> +++ linux-2.6/drivers/scsi/scsi_transport_sas.c	2005-10-19 19:50:55.000000000 +0200
> @@ -266,6 +266,9 @@
>  	struct sas_internal *i = to_sas_internal(shost->transportt);	\
>  	int error;							\
>  									\
> +	if (!phy->local_attached)					\
> +		return -EINVAL;						\
> +									\
>  	error = i->f->get_linkerrors(phy);				\
>  	if (error)							\
>  		return error;						\
> -
> : send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
http://linux.adaptec.com/sas/
http://www.adaptec.com/sas/
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux