From patchwork Wed Aug 29 10:06:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 963360 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="McP4L0qz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 420h9x6sKQz9s3Z for ; Wed, 29 Aug 2018 20:07:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727995AbeH2ODJ (ORCPT ); Wed, 29 Aug 2018 10:03:09 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:35791 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726858AbeH2ODI (ORCPT ); Wed, 29 Aug 2018 10:03:08 -0400 Received: by mail-pl1-f196.google.com with SMTP id d9-v6so2085955plr.2 for ; Wed, 29 Aug 2018 03:07:00 -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=McP4L0qzfGKrGq1CbV552n4QUHBRLlWdJOMiv+8FPdeMv7IPfOv7OEWRfVmfysa+E6 Um6ixAhRLdB9n47e8ftipBJAWRPOUht5OKioyMphUl77scf1MCEy5zBPVfzmcGdbQTdV dT02mCrbMCGMIcUAI5xUBrl8pSe/OgCukES5WYPFRwOT/ZNc1OuI2lSmWcNF8sEjoPYh 28+bV5M6pGeoJ/tw+21eODzfhOMAQEnb6+xfN2Xpq9ZclqN3WDS+RQZ4aIO50Le4zPbO UuiSD/gkerNvZsPjLFteq3Y0iqAgKSyXfrbtcWoxbvFhCuZaD6Ir9FQKqQk/CRNryQ9y k2+w== 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=h7P3Df1rJ5lO/1gKOtXZNqGg/TDJwWyprTylDPNMzcC0ImL8zzJcBxxaj4ttstsCsZ JRvMlZnmJm1hbFpjEev128vtdfAJy42bxEEg73/bO4NL9X3/GBbNNd1R8se/G8mI17z6 aevEMjGpGKq4AlFMPKUwMpz608UcZjqb9AeeIEvuF0VqGqPTwZDgLmXSD1njbTWdcgcM YIkKJjKUrjdeIzudrGiMrofnwYQtLibNQ2pmhidaD1umVVvKiDSz8KHq8LRdircM0rBl HB/kg2S3F8wKiVA4CDciYSj2J/vxBQbhPPOrhwNGXtTScKD25zfvFSdG9ZH1ilZzyog+ huOw== X-Gm-Message-State: APzg51ABZxXFbo+o+wOH/m4reDNNNjti1PKmw4YZH493gqCsdofxl98g PKO1/tUI+yW0eqPLt76X2uwz3RUi X-Google-Smtp-Source: ANB0VdYThixH8GWKF3C3dCSKxBed6astnXUfY2TkRPaGBQbJUWKPSw2rYSAnRS0ycvSFL3hDC4zlJA== X-Received: by 2002:a17:902:7c0a:: with SMTP id x10-v6mr5269888pll.77.1535537220081; Wed, 29 Aug 2018 03:07:00 -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.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Aug 2018 03:06:59 -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:09 +0800 Message-Id: <1535537171-24533-3-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);