From patchwork Fri Jun 30 05:46:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 106663 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp1904637qge; Thu, 29 Jun 2017 22:47:10 -0700 (PDT) X-Received: by 10.99.175.87 with SMTP id s23mr19595543pgo.240.1498801630099; Thu, 29 Jun 2017 22:47:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498801630; cv=none; d=google.com; s=arc-20160816; b=N35bBr0B5c5vYg+Ydmj7c9ylPPk5nOtt4xFBZXWiglDKHnOZb0mqPZaj1rVPPvO272 5/WQVReKjFtTt4y2zzKkh3NCPMaoYzvT2AT6iAzsOezlV3YZBjbWg06tphkankuiKCdc SuOB3vQGSlYYuSYHFjkuQCFzagXCpXr+ErzSmg5d+c/tBkWD3g5H15i6hM0YQVJKZJr3 fW+Pka5v4843JSZWnZ5pWg+MOPOtDmnmeDjzTq2+o4EvQZRg/Hj892bwWQviNPm2O8d1 3r6LNI9Yx1SBKGbsRHOPINB5CfpZzK1sS8axCrlCiQwk0jxH9g0ouGF43dn8tPxLqQLn xlgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=N4rPQfGduSWWHKsC/TlMuUVQqta2CIIjOg1MwW593zA=; b=uZ/35t72cN+EqWZgFgQ2XtmQCDLKmJMj0GdHUFjZk6rQDNweqsHlASu4FaXdKqKAvL MXwOsV7enRm9c4k8MmVeJfmYIQNfJM9UJ/EQGKRX0prg0x/+4945pAzsRmJnYq1UuqB/ 2vIGFasAO+MWqrUm3PytM8dLV6Fn/dUhMrIVFjoQYDU3Ms8KTlLAzVxuphsP8Ia92vtQ 0wDSjkC3Niuod0pz7C6ONWiTtysvQSEeeo3ZLAYuKCF7Uv8O6exFOJGKzK332PV9qumK g23VLPTxaJIPHUMi/Fep9I1aLe3FOvdGG+Rey6FXk5qLW1AJGMCgk4Xj3B7Zt/B2ghpo 3uCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=ATwZ3OsE; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b12si1658852plk.568.2017.06.29.22.47.09; Thu, 29 Jun 2017 22:47:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=ATwZ3OsE; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751930AbdF3Fq7 (ORCPT + 6 others); Fri, 30 Jun 2017 01:46:59 -0400 Received: from mail-pf0-f179.google.com ([209.85.192.179]:35069 "EHLO mail-pf0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751942AbdF3Fq5 (ORCPT ); Fri, 30 Jun 2017 01:46:57 -0400 Received: by mail-pf0-f179.google.com with SMTP id c73so61635949pfk.2 for ; Thu, 29 Jun 2017 22:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=N4rPQfGduSWWHKsC/TlMuUVQqta2CIIjOg1MwW593zA=; b=ATwZ3OsE8YzuR3uiKZImDFE4mE+S5CUGUbnsjlZ3fDOaUanQt22zns1yOp/gRfedCj zNA+8gF1U7SS71iqaL/D5gLObJ5p8wrqc2yHny8ZgVVhheX3ryQD8QNWcLTqPu8Az1Db o6EoQCUq5XQ6T5rt9JviUDm/vBmlppUcbBy0Q= 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=N4rPQfGduSWWHKsC/TlMuUVQqta2CIIjOg1MwW593zA=; b=EPtpfhC9iodRMZ0X57w1t7CgFZglv8qjVGqcL/u9KzgLubZkEA9YD7r/rV4HUPDp6V PQg0Qt78xkQENHcdTsR6law0Z2jr+hkvGKoln73TKY+c5t6iLVmt1etBpP93YW9Fl7lG z1JOCRo8bMxCaomhskJxovjoyl2l21lJVcPb/gbuZ9T7FT+tbA9NODAemy4+7YmbQ1Mn T0LEBDF3VNJIoIc07c0hAKn89HCaplrZ7MaE/8P0IRzW4atEEh3zX2I8pUJPhQZut+nH OtvgrSonXlacBNYAr6GZZMs6dQwaQIJaeqJCSsb8AAMstZunPZyf1KDef0cdEi7TYwxA jqNw== X-Gm-Message-State: AKS2vOxhDeNwouivxTSv7CrpySD545TGiMNjdyQQ86ETbxJuN1AZMZOj X05fFvtpwVJJi0aW X-Received: by 10.84.234.22 with SMTP id m22mr4307095plk.268.1498801611711; Thu, 29 Jun 2017 22:46:51 -0700 (PDT) Received: from localhost.localdomain ([106.51.129.233]) by smtp.gmail.com with ESMTPSA id a187sm11405550pgc.37.2017.06.29.22.46.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 29 Jun 2017 22:46:50 -0700 (PDT) From: Amit Pundir To: Greg KH Cc: Stable , Gregory CLEMENT , "David S . Miller" Subject: [PATCH for-4.4 02/16] net: mvneta: Fix for_each_present_cpu usage Date: Fri, 30 Jun 2017 11:16:26 +0530 Message-Id: <1498801600-20896-3-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1498801600-20896-1-git-send-email-amit.pundir@linaro.org> References: <1498801600-20896-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Gregory CLEMENT commit 129219e4950a3fcf9323b3bbd8b224c7aa873985 upstream. This patch convert the for_each_present in on_each_cpu, instead of applying on the present cpus it will be applied only on the online cpus. This fix a bug reported on http://thread.gmane.org/gmane.linux.ports.arm.kernel/468173. Using the macro on_each_cpu (instead of a for_each_* loop) also ensures that all the calls will be done all at once. Fixes: f86428854480 ("net: mvneta: Statically assign queues to CPUs") Reported-by: Stefan Roese Suggested-by: Jisheng Zhang Suggested-by: Russell King Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller Signed-off-by: Amit Pundir --- drivers/net/ethernet/marvell/mvneta.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) -- 2.7.4 diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 71ec9cb08e06..15056f06754a 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -2446,7 +2446,7 @@ static void mvneta_start_dev(struct mvneta_port *pp) mvneta_port_enable(pp); /* Enable polling on the port */ - for_each_present_cpu(cpu) { + for_each_online_cpu(cpu) { struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu); napi_enable(&port->napi); @@ -2472,7 +2472,7 @@ static void mvneta_stop_dev(struct mvneta_port *pp) phy_stop(pp->phy_dev); - for_each_present_cpu(cpu) { + for_each_online_cpu(cpu) { struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu); napi_disable(&port->napi); @@ -2902,13 +2902,11 @@ err_cleanup_rxqs: static int mvneta_stop(struct net_device *dev) { struct mvneta_port *pp = netdev_priv(dev); - int cpu; mvneta_stop_dev(pp); mvneta_mdio_remove(pp); unregister_cpu_notifier(&pp->cpu_notifier); - for_each_present_cpu(cpu) - smp_call_function_single(cpu, mvneta_percpu_disable, pp, true); + on_each_cpu(mvneta_percpu_disable, pp, true); free_percpu_irq(dev->irq, pp->ports); mvneta_cleanup_rxqs(pp); mvneta_cleanup_txqs(pp);