Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2742813imj; Mon, 11 Feb 2019 07:50:00 -0800 (PST) X-Google-Smtp-Source: AHgI3IYh+ZrCwyASe0xEwiCfqaea9EGS4XBoZO4/cTTv86XnguGTqoncpeAWT8QBy1R+RSevcfqa X-Received: by 2002:a63:100c:: with SMTP id f12mr34021161pgl.324.1549900200368; Mon, 11 Feb 2019 07:50:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549900200; cv=none; d=google.com; s=arc-20160816; b=T39RquE0lbQzo/MvTOUYOxnKNW9Af8KItl1lUahhohE2d10zO3AMkT35ZIuB2K5xEQ Kcu0qBjOgC75Hir+vmexgQ+2nlIkVB/DP48Ipynme8KLhrMSEAHw9pcTDGnLNPDLVjNU T2JEUnlOTK2MyKGO5mPm/e0j20BQj/Yh+fhIReupF6ZAzQXDFPniIrfrAVpJguqMY/Wu veKwsmIRP2aRWm2rybIVR2hMXSYNsh/KFbA7PNU/YdDPrz324WC5+2H5sjOmHFRJfXdF KhvIjE/F+kDJV1wxLXMyYmYXEd2DBv+bSh/IZjsgHCdr2XsMglUFTnKqLJ35wfoR1hVz 70jQ== 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:dkim-signature; bh=V1ST0DMQf0kTXBrLEcfi25djkdfPU7OgX2owLHomqY0=; b=Pm8FEmyBwoNvTnhFEeixxk+kOqsaCjcHlSEXDPq+eo3AgI3TqSlbo5GS311mKqATFr 9jHXBUYDoIWOhXrTywOR+rb9P7IPjOYb/eGIloO9/UHo6HAgJamPkgXKnwyGKe9pClu7 2VSLMto5awPZM4jXkRWi+mqZUwNaSoEo2nqn2wVyAOhnNOiwYdEt2pcIAt54CL6LUAhm r6tAokzcIztPZJehCDMQwX/Z/8R1HI3qQrrAiXTDTHOQbg4iBMNRjKdmOoALae4bCmDs s8gFGyXIXoIVWhTJztYaSaNWPQE4XLRPzXPv07LoK4CiXXcsAU4RrbP8scOA/HF9nnX0 73mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FZa2dgY+; 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 16si1242415pgt.548.2019.02.11.07.49.43; Mon, 11 Feb 2019 07:50:00 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=FZa2dgY+; 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 S1732698AbfBKPsy (ORCPT + 99 others); Mon, 11 Feb 2019 10:48:54 -0500 Received: from mail.kernel.org ([198.145.29.99]:51148 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731616AbfBKOkU (ORCPT ); Mon, 11 Feb 2019 09:40:20 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5F8F22081B; Mon, 11 Feb 2019 14:40:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1549896019; bh=d2xPbrNkKiInoeBzbLtPAvt1cBT4607jpx+LgKun7Oo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FZa2dgY+PKU5nqpBR7+1cukIatq1mGGZZ4YYZ8+YDO1eHa0ZgvC134NKBQEEhAs/i ldkQ2J8kujyaDaxqng/zzRcuNWIl/Q4UuSSyM5i5kJBmtU5tLdo5LpSGWfGnBTSbiP BBFIQAt+onoL+BcAhPwiQqBNDSU9A9q+1FlX/wEs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Sasha Levin Subject: [PATCH 4.19 046/313] net/mlx5: EQ, Use the right place to store/read IRQ affinity hint Date: Mon, 11 Feb 2019 15:15:26 +0100 Message-Id: <20190211141856.704776722@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190211141852.749630980@linuxfoundation.org> References: <20190211141852.749630980@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 1e86ace4c140fd5a693e266c9b23409358f25381 ] Currently the cpu affinity hint mask for completion EQs is stored and read from the wrong place, since reading and storing is done from the same index, there is no actual issue with that, but internal irq_info for completion EQs stars at MLX5_EQ_VEC_COMP_BASE offset in irq_info array, this patch changes the code to use the correct offset to store and read the IRQ affinity hint. Signed-off-by: Saeed Mahameed Reviewed-by: Leon Romanovsky Reviewed-by: Tariq Toukan Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin --- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 14 ++++++++------ include/linux/mlx5/driver.h | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 7365899c3ac9..944f21f99d43 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -1758,7 +1758,7 @@ static void mlx5e_close_cq(struct mlx5e_cq *cq) static int mlx5e_get_cpu(struct mlx5e_priv *priv, int ix) { - return cpumask_first(priv->mdev->priv.irq_info[ix].mask); + return cpumask_first(priv->mdev->priv.irq_info[ix + MLX5_EQ_VEC_COMP_BASE].mask); } static int mlx5e_open_tx_cqs(struct mlx5e_channel *c, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index b5e9f664fc66..563ce3fedab4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -640,18 +640,19 @@ u64 mlx5_read_internal_timer(struct mlx5_core_dev *dev) static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i) { struct mlx5_priv *priv = &mdev->priv; - int irq = pci_irq_vector(mdev->pdev, MLX5_EQ_VEC_COMP_BASE + i); + int vecidx = MLX5_EQ_VEC_COMP_BASE + i; + int irq = pci_irq_vector(mdev->pdev, vecidx); - if (!zalloc_cpumask_var(&priv->irq_info[i].mask, GFP_KERNEL)) { + if (!zalloc_cpumask_var(&priv->irq_info[vecidx].mask, GFP_KERNEL)) { mlx5_core_warn(mdev, "zalloc_cpumask_var failed"); return -ENOMEM; } cpumask_set_cpu(cpumask_local_spread(i, priv->numa_node), - priv->irq_info[i].mask); + priv->irq_info[vecidx].mask); if (IS_ENABLED(CONFIG_SMP) && - irq_set_affinity_hint(irq, priv->irq_info[i].mask)) + irq_set_affinity_hint(irq, priv->irq_info[vecidx].mask)) mlx5_core_warn(mdev, "irq_set_affinity_hint failed, irq 0x%.4x", irq); return 0; @@ -659,11 +660,12 @@ static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i) static void mlx5_irq_clear_affinity_hint(struct mlx5_core_dev *mdev, int i) { + int vecidx = MLX5_EQ_VEC_COMP_BASE + i; struct mlx5_priv *priv = &mdev->priv; - int irq = pci_irq_vector(mdev->pdev, MLX5_EQ_VEC_COMP_BASE + i); + int irq = pci_irq_vector(mdev->pdev, vecidx); irq_set_affinity_hint(irq, NULL); - free_cpumask_var(priv->irq_info[i].mask); + free_cpumask_var(priv->irq_info[vecidx].mask); } static int mlx5_irq_set_affinity_hints(struct mlx5_core_dev *mdev) diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 88a041b73abf..bbcfe2e5fd91 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -1321,7 +1321,7 @@ enum { static inline const struct cpumask * mlx5_get_vector_affinity_hint(struct mlx5_core_dev *dev, int vector) { - return dev->priv.irq_info[vector].mask; + return dev->priv.irq_info[vector + MLX5_EQ_VEC_COMP_BASE].mask; } #endif /* MLX5_DRIVER_H */ -- 2.19.1