> > [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-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html