From patchwork Wed Aug 29 10:06:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 963359 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="WfaxlCX8"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 420h9x0FRqz9s3C for ; Wed, 29 Aug 2018 20:07:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727558AbeH2ODH (ORCPT ); Wed, 29 Aug 2018 10:03:07 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:39859 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726858AbeH2ODH (ORCPT ); Wed, 29 Aug 2018 10:03:07 -0400 Received: by mail-pf1-f194.google.com with SMTP id j8-v6so2050116pff.6 for ; Wed, 29 Aug 2018 03:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=E8seA94ZFcnAr7iId3gfEf1UVK6BpR7NSKXDEMJMxZs=; b=WfaxlCX8+JoM0BF8cO5BMLfDiDUY8TZJYwOkJQYHvjCllHyAEuR0sltUd9gi9C4W/E xUQVZYeCiayKFMXIkmEgVGV596yG7azseAMWpvhB+apveGICnPgyMPng+Djie2wCr6UG GoKrIWbPAPXdtXhiSPpa9aj1BG9xnvORPMqBKIDpv/7bEwAM+SGCaQNBngnyT2al41dn gY0+QSszFEhN5VOVDSUTOaH7AKPMGZeUeuUttRUtApYrEiFP+95DnSG9ZwwOiH78vstZ 0UML2IfmzO5ruiBOFV8O9kZiAfKMCzTqfNiBuDeZUI3IQN4vZajHIzV0b485T9UmoFuE TrVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=E8seA94ZFcnAr7iId3gfEf1UVK6BpR7NSKXDEMJMxZs=; b=F+udxabbkQTJoq8hsSigZASIQs/eUkQ+Hwlc7hK1+58N2XO+BndY5VwR33W1LPryop LU2CcClXTXRanxnkowK5lPw07ks+iAcnS7S2PryH6wrNsTpbo/Saqs4hiSfI7JCpzH9o LJnI2+GegiZpZIaLdm6aWTuQH/O3C5tOOcFL6N+uffEFyx2oGgy22Q3TEkRE1/nKfegC nbdo0dVjX4Z0Dq5OyxxHL8LbEx48Y/xq50j0Iu1T5myQnlhMwgBW/I4ewT/OMcuhft4g +YWB9d25/gRed34VrfZZVRtAHj429wodAAMkshnJw7+67OZ9J8rs/nOGk4I6QFttVyh+ mT2A== X-Gm-Message-State: APzg51Bsob/25SvTIKa9mc+LPVk5KtSIaG4XShIpPwYv6Moyvj/1Z6tF Pbu92giYnmEEt1pH+N0em7D16ake X-Google-Smtp-Source: ANB0VdbuhnAbWw77w0Vyb277ZpsXwZAKLpwTkzUCea8pN92qBZaN5KYXL3lDLL3Q1s650dxEhESG1w== X-Received: by 2002:a63:4606:: with SMTP id t6-v6mr4990981pga.271.1535537218168; Wed, 29 Aug 2018 03:06:58 -0700 (PDT) Received: from leo.usersys.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id n29-v6sm5451104pgl.30.2018.08.29.03.06.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Aug 2018 03:06:57 -0700 (PDT) From: Hangbin Liu To: netdev@vger.kernel.org Cc: David Miller , Hangbin Liu Subject: [PATCH net 1/2] igmp: fix incorrect unsolicit report count when join group Date: Wed, 29 Aug 2018 18:06:08 +0800 Message-Id: <1535537171-24533-2-git-send-email-liuhangbin@gmail.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1535537171-24533-1-git-send-email-liuhangbin@gmail.com> References: <1535537171-24533-1-git-send-email-liuhangbin@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We should not start timer if im->unsolicit_count equal to 0 after decrease. Or we will send one more unsolicit report message. i.e. 3 instead of 2 by default. Fixes: 1da177e4c3f41 ("Linux-2.6.12-rc2") Signed-off-by: Hangbin Liu --- net/ipv4/igmp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index cf75f89..deb1f82 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c @@ -820,10 +820,9 @@ static void igmp_timer_expire(struct timer_list *t) spin_lock(&im->lock); im->tm_running = 0; - if (im->unsolicit_count) { - im->unsolicit_count--; + if (im->unsolicit_count && --im->unsolicit_count) igmp_start_timer(im, unsolicited_report_interval(in_dev)); - } + im->reporter = 1; spin_unlock(&im->lock);