On 6/30/10, Eli Dorfman (Voltaire) <dorfman....@gmail.com> wrote: > Hal Rosenstock wrote: >> On Tue, Jun 29, 2010 at 9:49 AM, Eli Dorfman (Voltaire) >> <dorfman....@gmail.com> wrote: >>> Fixes a bug of failover between SM's that are running on a switch. >>> Both have lids below LMC start lid (equals to 2^LMC - 1) >>> In case of failover the LID range between 1 and start lid was considered >>> not free >>> and their (switch's) lids were changed. >> >> Was the problem case for this when LMC > 0 but num_lids is 1 ? > > yes, it was for SM running on a switch.
There are two cases for SM running on a switch. There is also the case where num_lids > 1 which should work without this change. > >> >>> Signed-off-by: Eli Dorfman <e...@voltaire.com> >>> --- >>> opensm/opensm/osm_lid_mgr.c | 4 ---- >>> 1 files changed, 0 insertions(+), 4 deletions(-) >>> >>> diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c >>> index 97b1de6..5d0247a 100644 >>> --- a/opensm/opensm/osm_lid_mgr.c >>> +++ b/opensm/opensm/osm_lid_mgr.c >>> @@ -563,10 +563,6 @@ static boolean_t lid_mgr_is_range_not_persistent(IN >>> osm_lid_mgr_t * p_mgr, >>> IN uint16_t num_lids) >>> { >>> uint16_t i; >>> - uint8_t start_lid = (uint8_t) (1 << p_mgr->p_subn->opt.lmc); >>> - >>> - if (lid < start_lid) >>> - return FALSE; >> >> I think eliminating this test can cause other breakage. >> >> Shouldn't it be the following: >> >> if (num_lids > 1 && lid < start_lid) >> return FALSE; > > This could be ok, but even without this test it should work since this > function is called only > if ((min_lid & lmc_mask) == min_lid) > > So this would be false for any lid below start_lid. > > right? Right (so lid_mgr_is_range_not_persistent wouldn't be called for the case that I was concerned about). -- Hal > > > Eli >> >> -- Hal >> >>> for (i = lid; i < lid + num_lids; i++) >>> if (p_mgr->used_lids[i]) >>> -- >>> 1.5.3.6 >>> >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >>> the body of a message to majord...@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> > > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html