From patchwork Fri Jul 22 10:55:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sathya Perla X-Patchwork-Id: 651633 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3rwnd76HCcz9stc for ; Fri, 22 Jul 2016 20:56:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753843AbcGVK4H (ORCPT ); Fri, 22 Jul 2016 06:56:07 -0400 Received: from [192.19.245.250] ([192.19.245.250]:20969 "EHLO CMRELAYP1.ad.emulex.com" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753824AbcGVK4G (ORCPT ); Fri, 22 Jul 2016 06:56:06 -0400 Received: from s84.localdomain ([10.192.238.84]) by CMRELAYP1.ad.emulex.com with Microsoft SMTPSVC(7.5.7601.17514); Fri, 22 Jul 2016 03:56:48 -0700 From: Sathya Perla To: netdev@vger.kernel.org Subject: [net-next PATCH 2/4] be2net: do not remove vids from driver table if be_vid_config() fails. Date: Fri, 22 Jul 2016 06:55:44 -0400 Message-Id: <1469184946-26309-3-git-send-email-sathya.perla@broadcom.com> X-Mailer: git-send-email 2.4.1 In-Reply-To: <1469184946-26309-1-git-send-email-sathya.perla@broadcom.com> References: <1469184946-26309-1-git-send-email-sathya.perla@broadcom.com> X-OriginalArrivalTime: 22 Jul 2016 10:56:48.0963 (UTC) FILETIME=[BEEE0930:01D1E407] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The driver currently removes a new vid from the adapter->vids[] array if be_vid_config() returns an error, which occurs when there is an error in HW/FW. This is wrong. After the HW/FW error is recovered from, we need the complete vids[] array to re-program the vlan list. Signed-off-by: Sathya Perla --- drivers/net/ethernet/emulex/benet/be_main.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 2782299..27fc1f0 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -1463,13 +1463,7 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid) set_bit(vid, adapter->vids); adapter->vlans_added++; - status = be_vid_config(adapter); - if (status) { - adapter->vlans_added--; - clear_bit(vid, adapter->vids); - } - - return status; + return be_vid_config(adapter); } static int be_vlan_rem_vid(struct net_device *netdev, __be16 proto, u16 vid)