diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index ae58dc0b8b0..5caa957cdda 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -2122,7 +2122,8 @@ igmp_v1v2_process_querier_timers(struct igmp_ifsoftc *igi) * * Revert to IGMPv3. */ - if (igi->igi_version != IGMP_VERSION_3) { + if (V_igmp_default_version == IGMP_VERSION_3 && + igi->igi_version != IGMP_VERSION_3) { CTR5(KTR_IGMPV3, "%s: transition from v%d -> v%d on %p(%s)", __func__, igi->igi_version, IGMP_VERSION_3, @@ -2137,7 +2138,8 @@ igmp_v1v2_process_querier_timers(struct igmp_ifsoftc *igi) * revert to IGMPv3. * If IGMPv2 is enabled, revert to IGMPv2. */ - if (!V_igmp_v2enable) { + if (V_igmp_default_version == IGMP_VERSION_3 && + !V_igmp_v2enable) { CTR5(KTR_IGMPV3, "%s: transition from v%d -> v%d on %p(%s)", __func__, igi->igi_version, IGMP_VERSION_3, @@ -2146,7 +2148,8 @@ igmp_v1v2_process_querier_timers(struct igmp_ifsoftc *igi) igi->igi_version = IGMP_VERSION_3; } else { --igi->igi_v2_timer; - if (igi->igi_version != IGMP_VERSION_2) { + if (V_igmp_default_version == IGMP_VERSION_2 && + igi->igi_version != IGMP_VERSION_2) { CTR5(KTR_IGMPV3, "%s: transition from v%d -> v%d on %p(%s)", __func__, igi->igi_version, IGMP_VERSION_2, @@ -2164,7 +2167,8 @@ igmp_v1v2_process_querier_timers(struct igmp_ifsoftc *igi) * revert to IGMPv3. * If IGMPv1 is enabled, reset IGMPv2 timer if running. */ - if (!V_igmp_v1enable) { + if (V_igmp_default_version == IGMP_VERSION_3 && + !V_igmp_v1enable) { CTR5(KTR_IGMPV3, "%s: transition from v%d -> v%d on %p(%s)", __func__, igi->igi_version, IGMP_VERSION_3,