From: James Bottomley <jbottomley@parallels.com>
To: Luben Tuikov <ltuikov@yahoo.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] [SCSI] libsas: Allow expander T-T attachments
Date: Thu, 28 Jul 2011 07:52:05 +0000 [thread overview]
Message-ID: <1311839519.30253.16.camel@mulgrave> (raw)
In-Reply-To: <1311826792.28583.YahooMailNeo@web31811.mail.mud.yahoo.com>
On Wed, 2011-07-27 at 21:19 -0700, Luben Tuikov wrote:
> Allow expander table-to-table attachments for
> expanders that support it.
This is half the code to do SAS 2.0 expanders. You seem to have
additions from the other half (self configuring expanders) see below;
does this mean you have a patch for self configuring expanders in the
works?
> Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
> ---
> drivers/scsi/libsas/sas_expander.c | 20 ++++++++++++++------
> include/scsi/libsas.h | 3 +++
> include/scsi/sas.h | 14 ++++++++++++--
> 3 files changed, 29 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
> index f84084b..e8d0115 100644
> --- a/drivers/scsi/libsas/sas_expander.c
> +++ b/drivers/scsi/libsas/sas_expander.c
> @@ -329,6 +329,7 @@ static void ex_assign_report_general(struct domain_device *dev,
> dev->ex_dev.ex_change_count = be16_to_cpu(rg->change_count);
> dev->ex_dev.max_route_indexes = be16_to_cpu(rg->route_indexes);
> dev->ex_dev.num_phys = min(rg->num_phys, (u8)MAX_EXPANDER_PHYS);
> + dev->ex_dev.t2t_supp = rg->t2t_supp;
> dev->ex_dev.conf_route_table = rg->conf_route_table;
> dev->ex_dev.configuring = rg->configuring;
> memcpy(dev->ex_dev.enclosure_logical_id, rg->enclosure_logical_id, 8);
> @@ -1133,15 +1134,17 @@ static void sas_print_parent_topology_bug(struct domain_device *child,
> };
> struct domain_device *parent = child->parent;
>
> - sas_printk("%s ex %016llx phy 0x%x <--> %s ex %016llx phy 0x%x "
> - "has %c:%c routing link!\n",
> + sas_printk("%s ex %016llx (T2T supp:%d) phy 0x%x <--> %s ex %016llx "
> + "(T2T supp:%d) phy 0x%x has %c:%c routing link!\n",
>
> ex_type[parent->dev_type],
> SAS_ADDR(parent->sas_addr),
> + parent->ex_dev.t2t_supp,
> parent_phy->phy_id,
>
> ex_type[child->dev_type],
> SAS_ADDR(child->sas_addr),
> + child->ex_dev.t2t_supp,
> child_phy->phy_id,
>
> ra_char[parent_phy->routing_attr],
> @@ -1238,10 +1241,15 @@ static int sas_check_parent_topology(struct domain_device *child)
> sas_print_parent_topology_bug(child, parent_phy, child_phy);
> res = -ENODEV;
> }
> - } else if (parent_phy->routing_attr == TABLE_ROUTING &&
> - child_phy->routing_attr != SUBTRACTIVE_ROUTING) {
> - sas_print_parent_topology_bug(child, parent_phy, child_phy);
> - res = -ENODEV;
> + } else if (parent_phy->routing_attr == TABLE_ROUTING) {
> + if (child_phy->routing_attr == SUBTRACTIVE_ROUTING ||
> + (child_phy->routing_attr == TABLE_ROUTING &&
> + child_ex->t2t_supp && parent_ex->t2t_supp)) {
> + /* All good */;
> + } else {
> + sas_print_parent_topology_bug(child, parent_phy, child_phy);
> + res = -ENODEV;
> + }
> }
> break;
> case FANOUT_DEV:
> diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
> index ee86606..793f80b 100644
> --- a/include/scsi/libsas.h
> +++ b/include/scsi/libsas.h
> @@ -142,8 +142,11 @@ struct expander_device {
> u16 ex_change_count;
> u16 max_route_indexes;
> u8 num_phys;
> +
> + u8 t2t_supp:1;
> u8 configuring:1;
> u8 conf_route_table:1;
> +
> u8 enclosure_logical_id[8];
>
> struct ex_phy *ex_phy;
> diff --git a/include/scsi/sas.h b/include/scsi/sas.h
> index e9fd022..f59f182 100644
> --- a/include/scsi/sas.h
> +++ b/include/scsi/sas.h
> @@ -341,7 +341,12 @@ struct report_general_resp {
>
> u8 conf_route_table:1;
> u8 configuring:1;
> - u8 _r_b:6;
> + u8 config_others:1;
> + u8 orej_retry_supp:1;
> + u8 stp_cont_awt:1;
> + u8 self_config:1;
> + u8 zone_config:1;
> + u8 t2t_supp:1;
> u8 _r_c;
>
> @@ -528,7 +533,12 @@ struct report_general_resp {
> u8 _r_a;
> u8 num_phys;
>
> - u8 _r_b:6;
> + u8 t2t_supp:1;
> + u8 zone_config:1;
> + u8 self_config:1;
> + u8 stp_cont_awt:1;
> + u8 orej_retry_supp:1;
> + u8 config_others:1;
> u8 configuring:1;
> u8 conf_route_table:1;
>
These are all SAS2.0 additions to the reserved fields, but you only make
use of one of them.
James
next prev parent reply other threads:[~2011-07-28 8:00 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-28 4:19 [PATCH] [SCSI] libsas: Allow expander T-T attachments Luben Tuikov
2011-07-28 6:46 ` Jack Wang
2011-07-28 7:52 ` James Bottomley [this message]
2011-09-21 0:50 ` Dan Williams
2011-09-22 11:30 ` James Bottomley
2011-09-22 15:04 ` Mark Salyzyn
2011-09-22 15:32 ` [PATCH] [SCSI] libsas panic when single phy disabled on a wide port Mark Salyzyn
2011-09-22 15:50 ` [PATCH] [SCSI] pm8001 DEV_IS_GONE infinite retry Mark Salyzyn
2011-09-26 2:20 ` Jack Wang
2011-09-26 13:15 ` Mark Salyzyn
2011-09-26 14:57 ` [PATCH] [SCSI] pm8001 missing break statements Mark Salyzyn
2011-09-27 4:27 ` Jack Wang
2011-09-30 2:21 ` [PATCH] [SCSI] libsas panic when single phy disabled on a wide port Jack Wang
2011-10-01 1:43 ` Dan Williams
2011-10-03 13:07 ` Mark Salyzyn
2011-10-03 15:58 ` Mark Salyzyn
2011-10-04 8:35 ` Jack Wang
2011-10-04 23:30 ` Dan Williams
2011-10-04 23:38 ` Dan Williams
2011-10-05 12:10 ` Mark Salyzyn
2011-10-06 3:33 ` Jack Wang
2011-09-22 16:30 ` [PATCH] [SCSI] libsas: Allow expander T-T attachments Luben Tuikov
2011-09-22 16:35 ` Luben Tuikov
2011-09-22 17:03 ` Christoph Hellwig
2011-09-22 17:11 ` Luben Tuikov
2011-09-23 18:42 ` Christoph Hellwig
2011-09-23 18:46 ` Alan Cox
2011-09-22 16:41 ` [RESEND] " Luben Tuikov
2011-09-22 16:50 ` Christoph Hellwig
2011-09-22 17:24 ` Luben Tuikov
2011-09-22 17:32 ` Bart Van Assche
2011-09-22 16:55 ` Mark Salyzyn
2011-09-22 17:19 ` Luben Tuikov
2011-09-22 17:44 ` Mark Salyzyn
2011-09-22 17:48 ` Dan Williams
2011-09-22 17:41 ` Dan Williams
2011-09-23 1:47 ` Jack Wang
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=1311839519.30253.16.camel@mulgrave \
--to=jbottomley@parallels.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=ltuikov@yahoo.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox