From: Luben Tuikov <luben_tuikov@adaptec.com>
To: Christoph Hellwig <hch@lst.de>
Cc: jejb@steeleye.com, Eric.Moore@lsil.com, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 1/4] sas: add flag for locally attached PHYs
Date: Wed, 19 Oct 2005 15:24:13 -0400 [thread overview]
Message-ID: <43569D5D.1000801@adaptec.com> (raw)
In-Reply-To: <20051019180117.GB21488@lst.de>
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@lst.de>
>
> 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; \
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
http://linux.adaptec.com/sas/
http://www.adaptec.com/sas/
next prev parent reply other threads:[~2005-10-19 19:24 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-19 18:01 [PATCH 1/4] sas: add flag for locally attached PHYs Christoph Hellwig
2005-10-19 19:24 ` Luben Tuikov [this message]
2005-10-19 19:37 ` Luben Tuikov
-- strict thread matches above, loose matches on Subject: below --
2005-10-19 20:08 Moore, Eric Dean
2005-10-19 21:00 ` Luben Tuikov
2005-10-20 14:11 ` Christoph Hellwig
2005-10-20 15:29 ` Luben Tuikov
2005-10-20 15:49 ` Christoph Hellwig
2005-10-20 16:08 ` Luben Tuikov
2005-10-20 15:25 Moore, Eric Dean
2005-10-20 15:55 ` Luben Tuikov
2005-10-20 16:01 ` Christoph Hellwig
2005-10-20 16:51 ` Luben Tuikov
2005-10-20 17:03 ` Christoph Hellwig
2005-10-20 17:22 ` Arjan van de Ven
2005-10-20 20:10 ` Luben Tuikov
2005-10-21 8:16 ` Arjan van de Ven
2005-10-20 20:02 ` Luben Tuikov
2005-10-21 0:01 ` Andrew Patterson
2005-10-21 9:06 ` Arjan van de Ven
2005-10-21 17:05 ` Andrew Patterson
2005-10-21 17:18 ` Arjan van de Ven
2005-10-21 18:57 ` Luben Tuikov
2005-10-21 17:32 ` Luben Tuikov
2005-10-21 1:50 ` Douglas Gilbert
2005-10-21 2:16 ` Jeff Garzik
2005-10-21 3:25 ` Douglas Gilbert
2005-10-21 18:04 ` Luben Tuikov
2005-10-20 15:45 Moore, Eric Dean
2005-10-20 16:16 ` Luben Tuikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43569D5D.1000801@adaptec.com \
--to=luben_tuikov@adaptec.com \
--cc=Eric.Moore@lsil.com \
--cc=hch@lst.de \
--cc=jejb@steeleye.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.