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> [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset="utf-8", Size: 4779 bytes --] 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 ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
WARNING: multiple messages have this Message-ID (diff)
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: 48+ 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 6:46 ` Jack Wang 2011-07-28 7:52 ` James Bottomley [this message] 2011-07-28 7:52 ` James Bottomley 2011-09-21 0:50 ` Dan Williams 2011-09-21 0:50 ` Dan Williams 2011-09-22 11:30 ` James Bottomley 2011-09-22 11:30 ` James Bottomley 2011-09-22 15:04 ` Mark Salyzyn 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-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 16:55 ` Mark Salyzyn 2011-09-22 17:19 ` Luben Tuikov 2011-09-22 17:19 ` Luben Tuikov 2011-09-22 17:44 ` Mark Salyzyn 2011-09-22 17:44 ` Mark Salyzyn 2011-09-22 17:48 ` Dan Williams 2011-09-22 17:48 ` Dan Williams 2011-09-22 17:41 ` Dan Williams 2011-09-23 1:47 ` Jack Wang 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: linkBe 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.