Received: by 10.192.165.156 with SMTP id m28csp1164318imm; Wed, 11 Apr 2018 13:41:06 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/fAcM+VuDFHgzyNNtJa0oYqSkwi6wzS+NqORnYrIUrVeCL2P3BTqoMFU8HqcGR1DbCTnTr X-Received: by 2002:a17:902:8:: with SMTP id 8-v6mr6498911pla.291.1523479266132; Wed, 11 Apr 2018 13:41:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523479266; cv=none; d=google.com; s=arc-20160816; b=uLFKFyWRQqY7IM/KsNKx36DIxf/134wT0zzNTB5YhFVCXT42PKYy+gLGa1LFmDDtcy UrOMnICE2f1mxe5LWfgg0BWuqfbckzOZPJOj/TTdOwr0nUDFI1Psixqu6NLgGAZhgKyd 6JNeus4uyMeLTCyNR9k+8aCgeDdWTlhA8/3dxDuM6VwsfmybdYtQMftt34hbTT3UVDq4 5PFrfg3xaSWncwxtX4pdVj64InXGRR1IuLMWPJHhgvuvtsnnPoPA+kbk9uL6UD3YFHtV VspB0VMN4prU6Z+u6nw25SESQggPQ+RT2uf8ZtzUFjc/W3v420ubAYnxm94vy/LsLH6r hNcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=UVaoRVMsuGBfRH7zxjWUEnEUKsuehLsst2OXfk6X6K8=; b=V1g8k8Hw1DChGj5OICnUiKpjCGtauM6HqqMFKGZCPF160Ag81BHRqq4pbNNgSZL1bf tPq1cJOTZ0cPyypFPLeb128wonWM7zz+EE/WEUMPEUEn9W9LSvKV3CGohSYTJPY49/dt IikXCb00ljD/ZGnT0eyEed9ekIbuRs/dxrIs5VZbR/9Zxv9DobM6NlJLsp4P8DWZJC8q tmfOkc3LkxSu8Tnv4eqaykqrm+0vdh3mwjrUfBjH0svhz4tQ2wdtbatm2gGpjL6kWGHv kV8Ysr7IQiXlpAIi0BaqU4/fAxWfOx1gNNEYw9Tx9XGpYbU5D3ticMdFJ41wFBNNXwOu eDjA== 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 s24-v6si1764941plp.564.2018.04.11.13.40.29; Wed, 11 Apr 2018 13:41:06 -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 S932420AbeDKSsz (ORCPT + 99 others); Wed, 11 Apr 2018 14:48:55 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:59880 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754583AbeDKSsw (ORCPT ); Wed, 11 Apr 2018 14:48:52 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id C9386E5B; Wed, 11 Apr 2018 18:48:51 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ido Shamay , Jack Morgenstein , Tariq Toukan , "David S. Miller" , Sasha Levin Subject: [PATCH 4.4 120/190] net/mlx4: Check if Granular QoS per VF has been enabled before updating QP qos_vport Date: Wed, 11 Apr 2018 20:36:06 +0200 Message-Id: <20180411183558.476496673@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183550.114495991@linuxfoundation.org> References: <20180411183550.114495991@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Ido Shamay [ Upstream commit 269f9883fe254d109afdfc657875c456d6fabb08 ] The Granular QoS per VF feature must be enabled in FW before it can be used. Thus, the driver cannot modify a QP's qos_vport value (via the UPDATE_QP FW command) if the feature has not been enabled -- the FW returns an error if this is attempted. Fixes: 08068cd5683f ("net/mlx4: Added qos_vport QP configuration in VST mode") Signed-off-by: Ido Shamay Signed-off-by: Jack Morgenstein Signed-off-by: Tariq Toukan Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/mellanox/mlx4/qp.c | 6 ++++++ drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 16 +++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) --- a/drivers/net/ethernet/mellanox/mlx4/qp.c +++ b/drivers/net/ethernet/mellanox/mlx4/qp.c @@ -481,6 +481,12 @@ int mlx4_update_qp(struct mlx4_dev *dev, } if (attr & MLX4_UPDATE_QP_QOS_VPORT) { + if (!(dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_QOS_VPP)) { + mlx4_warn(dev, "Granular QoS per VF is not enabled\n"); + err = -EOPNOTSUPP; + goto out; + } + qp_mask |= 1ULL << MLX4_UPD_QP_MASK_QOS_VPP; cmd->qp_context.qos_vport = params->qos_vport; } --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c @@ -5040,6 +5040,13 @@ void mlx4_delete_all_resources_for_slave mutex_unlock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex); } +static void update_qos_vpp(struct mlx4_update_qp_context *ctx, + struct mlx4_vf_immed_vlan_work *work) +{ + ctx->qp_mask |= cpu_to_be64(1ULL << MLX4_UPD_QP_MASK_QOS_VPP); + ctx->qp_context.qos_vport = work->qos_vport; +} + void mlx4_vf_immed_vlan_work_handler(struct work_struct *_work) { struct mlx4_vf_immed_vlan_work *work = @@ -5144,11 +5151,10 @@ void mlx4_vf_immed_vlan_work_handler(str qp->sched_queue & 0xC7; upd_context->qp_context.pri_path.sched_queue |= ((work->qos & 0x7) << 3); - upd_context->qp_mask |= - cpu_to_be64(1ULL << - MLX4_UPD_QP_MASK_QOS_VPP); - upd_context->qp_context.qos_vport = - work->qos_vport; + + if (dev->caps.flags2 & + MLX4_DEV_CAP_FLAG2_QOS_VPP) + update_qos_vpp(upd_context, work); } err = mlx4_cmd(dev, mailbox->dma,