Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1351388imm; Tue, 2 Oct 2018 06:58:14 -0700 (PDT) X-Google-Smtp-Source: ACcGV62rYPj4cHHkXss7xHc+vQyskuPcOwTfnNzSlCICcmNt+vuVwveHSkVJfzZCyyk0uPLZbFpF X-Received: by 2002:aa7:8305:: with SMTP id t5-v6mr1413068pfm.81.1538488694623; Tue, 02 Oct 2018 06:58:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538488694; cv=none; d=google.com; s=arc-20160816; b=uQgdDGuSRYl/LaSaE5ARufB0R4npg0GxmWyIuuUfEGHnoxT6rcKE0dHqUI4nuL+CFD UM25T2br5epe8TgNdXtMI4YZyZmDINA5iROBiWIcR2UQX/TkxNWArmzwUo5EMIzqq99O DsZF2CNc6/CEMxL7pRXlvmFo6TndjIX0feOBvimKFsZaxTKdEaxJnXtjW4r8YBidwDLT BTaigv+y7YaglCxbOKAONtk4T0Nf+v+Jx/5xP4O4QlszWHwYdXp0TSph1PtHPAkOHLlf 8MBfSNH1DeHt4+GOr3DGHl/cpMT3j9VuLOqO6T60278QXMs9YesNFX5eEcxgNyfvLJRW Qz6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=SC+9uUVMULC1OpEAw7HKNRISGOtcJlIjWfym9pcp5q4=; b=mvwSfyltkPyFQAcR9CmYGI4kmxFHiPspj2t0kSnIsCIhBJS8R9E31SAfdQuydr8cMl Dyb1Yt+btcgsEVPUZ3q3NJb4kkT+G4VhMxuP7wnvEUzi84Jw06tcR3hH/OWO57JCnAB1 De71GRjfihEsYBtzeSlRSoFzUk5iDMSbO5sSZNUcbUBd3CvMV3IYMSDaqJxyF0qNthFd ZaDpXiJbE+Mjkb6v1CPFX52Krl+OJL/5Ed49GoDHuhU+jh8YxbUgK8Zpk2ds6Rgu3jKd UzfRktJ3Sv7M2SgAelRC1pQb4G+b7/IZqln2wlhnn+WgC+dk2pBoFb6wGtfSb3IjrgUm Eznw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p81-v6si13487618pfd.76.2018.10.02.06.57.59; Tue, 02 Oct 2018 06:58:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731245AbeJBUkl (ORCPT + 99 others); Tue, 2 Oct 2018 16:40:41 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:34078 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729986AbeJBUOm (ORCPT ); Tue, 2 Oct 2018 16:14:42 -0400 Received: from localhost (24-104-73-23-ip-static.hfc.comcastbusiness.net [24.104.73.23]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id B1573C47; Tue, 2 Oct 2018 13:31:19 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sebastian Basierski , Andrew Bowers , Jeff Kirsher , Sasha Levin Subject: [PATCH 4.18 206/228] ixgbe: fix driver behaviour after issuing VFLR Date: Tue, 2 Oct 2018 06:25:03 -0700 Message-Id: <20181002132511.721772927@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181002132459.032960735@linuxfoundation.org> References: <20181002132459.032960735@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Sebastian Basierski [ Upstream commit 939b701ad63314f5aa90dcd3d866f73954945209 ] Since VFLR doesn't clear VFMBMEM (VF Mailbox Memory) and is not re-enabling queues correctly we should fix this behavior. Signed-off-by: Sebastian Basierski Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 26 +++++++++++++++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 2 files changed, 27 insertions(+) --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c @@ -688,8 +688,13 @@ static int ixgbe_set_vf_macvlan(struct i static inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf) { struct ixgbe_hw *hw = &adapter->hw; + struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ]; struct vf_data_storage *vfinfo = &adapter->vfinfo[vf]; + u32 q_per_pool = __ALIGN_MASK(1, ~vmdq->mask); u8 num_tcs = adapter->hw_tcs; + u32 reg_val; + u32 queue; + u32 word; /* remove VLAN filters beloning to this VF */ ixgbe_clear_vf_vlans(adapter, vf); @@ -726,6 +731,27 @@ static inline void ixgbe_vf_reset_event( /* reset VF api back to unknown */ adapter->vfinfo[vf].vf_api = ixgbe_mbox_api_10; + + /* Restart each queue for given VF */ + for (queue = 0; queue < q_per_pool; queue++) { + unsigned int reg_idx = (vf * q_per_pool) + queue; + + reg_val = IXGBE_READ_REG(hw, IXGBE_PVFTXDCTL(reg_idx)); + + /* Re-enabling only configured queues */ + if (reg_val) { + reg_val |= IXGBE_TXDCTL_ENABLE; + IXGBE_WRITE_REG(hw, IXGBE_PVFTXDCTL(reg_idx), reg_val); + reg_val &= ~IXGBE_TXDCTL_ENABLE; + IXGBE_WRITE_REG(hw, IXGBE_PVFTXDCTL(reg_idx), reg_val); + } + } + + /* Clear VF's mailbox memory */ + for (word = 0; word < IXGBE_VFMAILBOX_SIZE; word++) + IXGBE_WRITE_REG_ARRAY(hw, IXGBE_PFMBMEM(vf), word, 0); + + IXGBE_WRITE_FLUSH(hw); } static int ixgbe_set_vf_mac(struct ixgbe_adapter *adapter, --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h @@ -2518,6 +2518,7 @@ enum { /* Translated register #defines */ #define IXGBE_PVFTDH(P) (0x06010 + (0x40 * (P))) #define IXGBE_PVFTDT(P) (0x06018 + (0x40 * (P))) +#define IXGBE_PVFTXDCTL(P) (0x06028 + (0x40 * (P))) #define IXGBE_PVFTDWBAL(P) (0x06038 + (0x40 * (P))) #define IXGBE_PVFTDWBAH(P) (0x0603C + (0x40 * (P)))