Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2353736pxb; Mon, 20 Sep 2021 19:52:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzrZzc/HIxcOqVRWPbzwXXDwUTj+nw2FKjdae0ysELf6PSwA8SnkgDqx+bdFLDREsH7Soe9 X-Received: by 2002:a50:cf87:: with SMTP id h7mr23342468edk.152.1632192747690; Mon, 20 Sep 2021 19:52:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632192747; cv=none; d=google.com; s=arc-20160816; b=WFfiV/PWmDslcgUOYHyzVwmbGI7dQOM144Qp+ZbFQnibafBp4Xv5KhuTH7ayMXzxHO JJYzF4Ye9CRZbGrhlt1sGECbRan3lf+8H/jf60AjBGwzbcIFnaEQBWDyTReKQrn65RmD dZxYCqHNdyEl/3fATqw0kZZfa4Ibxo1v1mSDnfi8M0F6EXDq1AAHr7H2iPRW0a4PG4n1 v/x6HZB43xxoA0Tqa5HAilooDKAgibH9po2UnbyH96T5SoDHhUHANWV6+p1KpjL1EQgC heDD0AJYXAQoBVAivPtkuC4WQ+cAN0ZHBiz8jWlbQnufWRCzKUtgBDzMNqlw4FLKJm+l 7Xjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=12RCDZyVEi/iuNOnW8Ghs+SO22veSGhleb1JG45LpBg=; b=rxE520cwVUnpYckgBnZQ/jQDBgJX0IAOiktsjP5vKFLO+QLpavakHgouL5m/r3Jqgm EvAnXBQXWTEYhJLrmtolZnFQT+rGcL1AHyPSJkpcOmGxnPpahWrtZoeTUCXfhMlAF2D+ l1X6NFgUzmWyrJ7y7oPe6TkJgvdO54cwl3bBCjE04dgupJ/y9SE9/7HaI36IQu+L7jHO XuWqdkxKglYg0scpJIScY651U7o/0fdWnQsU7+Oihh5Athka1o6h527t6YibC1bxqDFJ cKPar8HTITuSabBsuQfWWE3uhFC7uM4fZSg/Q6w854C0Lw5mfaeFJw3yJ6Mab71wNk6V zo0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tqYmOJ73; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p21si17921694ejn.785.2021.09.20.19.52.04; Mon, 20 Sep 2021 19:52:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tqYmOJ73; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1384026AbhITSqZ (ORCPT + 99 others); Mon, 20 Sep 2021 14:46:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:56474 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1382848AbhITSmb (ORCPT ); Mon, 20 Sep 2021 14:42:31 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9354F6333F; Mon, 20 Sep 2021 17:32:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1632159129; bh=i0kSyFcrz71ejy3rw1SVLqgXk9vAxKmQLRiRx8lscrE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tqYmOJ73tq80Ez5cf2JZazZzThWd1qa9gFZXesWErj2vdzrKAbybLfB8hMLxY49uM 81V5lem9bkTTtwjjCCkHFmIZRNAwZDUVd9JfQRybNJwRRK5gbJ6tvIcOlbffrGQoLS GlvHpaKc0HvQ7n+mQpwoFuDN4SqTlFkhhnpCAZ2s= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Asmaa Mnebhi , David Thompson , "David S. Miller" , Sasha Levin Subject: [PATCH 5.14 089/168] mlxbf_gige: clear valid_polarity upon open Date: Mon, 20 Sep 2021 18:43:47 +0200 Message-Id: <20210920163924.560471903@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210920163921.633181900@linuxfoundation.org> References: <20210920163921.633181900@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Thompson [ Upstream commit ee8a9600b5391f434905c46bec7f77d34505083e ] The network interface managed by the mlxbf_gige driver can get into a problem state where traffic does not flow. In this state, the interface will be up and enabled, but will stop processing received packets. This problem state will happen if three specific conditions occur: 1) driver has received more than (N * RxRingSize) packets but less than (N+1 * RxRingSize) packets, where N is an odd number Note: the command "ethtool -g " will display the current receive ring size, which currently defaults to 128 2) the driver's interface was disabled via "ifconfig oob_net0 down" during the window described in #1. 3) the driver's interface is re-enabled via "ifconfig oob_net0 up" This patch ensures that the driver's "valid_polarity" field is cleared during the open() method so that it always matches the receive polarity used by hardware. Without this fix, the driver needs to be unloaded and reloaded to correct this problem state. Fixes: f92e1869d74e ("Add Mellanox BlueField Gigabit Ethernet driver") Reviewed-by: Asmaa Mnebhi Signed-off-by: David Thompson Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c index a0a059e0154f..04c7dc224eff 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c @@ -142,6 +142,13 @@ static int mlxbf_gige_open(struct net_device *netdev) err = mlxbf_gige_clean_port(priv); if (err) goto free_irqs; + + /* Clear driver's valid_polarity to match hardware, + * since the above call to clean_port() resets the + * receive polarity used by hardware. + */ + priv->valid_polarity = 0; + err = mlxbf_gige_rx_init(priv); if (err) goto free_irqs; -- 2.30.2