[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <C8FBA6A948D643679B01520A89FAC48A@usish.com.cn>
Date: Thu, 16 Jun 2011 12:31:34 +0800
From: "Jack Wang" <jack_wang@...sh.com>
To: "'Xiangliang Yu'" <yuxiangl@...vell.com>,
"'James Bottomley'" <James.Bottomley@...senPartnership.com>
Cc: <yxlraid@...il.com>, <lucas.demarchi@...fusion.mobi>,
<maciej.trela@...el.com>, <dan.j.williams@...el.com>,
<linux-scsi@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
"'Jacky Feng'" <jfeng@...vell.com>
Subject: RE: [PATCH] [SCSI] LIBSAS: fix libsas link error issue
> > [Jack Wang]
> >It's the same, sas_ex_get_linkrate use DISCOVER response as linkrate.
> But the function have problem, actually, the error statement is:
> child->linkrate = min(parent_phy->linkrate, child->max_linkrate);
> its mean like this:
> child->linkrate = min(child_phy->linkrate,
> max(parent->max_linkrate,child_phy->linkrate));
> and if parent->max_linkrate(3Gbps) is less than
child_phy->linkrate(6Gbps),
> the statement will be change this:
> child->linkrate = child_phy->linkrate, forget the parent linkrate.
[Jack Wang]
I don't think the statement below is error:
child->linkrate = min(parent_phy->linkrate, child->max_linkrate);
parent_phy->linkrate is came from sas_set_ex_phy which will set the linkrate
to negotiated logical linkrate. For your eg: you topo like this:
hba(3G)---expander1(6G)---expander2(6G):
Then expander1's linkrate will set to 3G, and expander2's linkrate will set
to 6G, that is correct. But the connection rate will be 3G from hba to
expander2.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists