From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-1372482-1517180427-2-4183329086892358676 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.001, RCVD_IN_DNSWL_HI -5, T_RP_MATCHES_RCVD -0.01, LANGUAGES unknown, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='US', FromHeader='com', MailFrom='org', XOriginatingCountry='US' X-Spam-charsets: plain='iso-8859-1' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: stable-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=arctest; t=1517180426; b=e4rsmsAZa48kjwoRMxe62QG1LwSqef+cps2Fua338c+BBzT 6vCB9jmO6b0tEovXrpH67XhtfFL/94SbC6hktWuf3EmuC/xrOqaF2kZQ/urhAiS9 GwdJVz4OjgoOUHmQpe5a2jUrfLUi+TxltNTtIppKvjc3xOI2b6SnRbGHwli79zvh e/6cE0geX8Xr1VCDfM1xDw2HLIcFKQWrnoUQg0y+vRTuuaN4t5Cn77HXkwwjmwc9 9kGMG94Z9zKAEEFJKhfSnVOxNa95qTIhX/GCtvdxJdF1h+uEJ1NBM/8QqeK29THs joLxAyF90r1s+s6lLwoCux9WnG6V2bucwegYGhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :references:in-reply-to:content-type:content-transfer-encoding :mime-version:sender:list-id; s=arctest; t=1517180426; bh=Ql1OZP R2NYTM9NCp8nIcxgvk/7SUUL0nr+WpBvR84f8=; b=aLXGTCnfbKNiLcBlIUnZ5G LsWcR2ug6B82z/I/s9ACN3ww71SFcwJW1z0OLDiaQQzpwgInKQtPogFjzafcMVyG KqT4u7q/IEKj9NuDNpaRxN7MLeei5cG7w5LIcuGHru2d+gZavwXUYsHSWnWR+ma6 zeBl+aIC/41feYj/l2ktERERieNInNDH5gSNnbIQdNnZrgzydzZH2nQBnimRwOrI QMfH+YtnEHyb/ZgOs7FIFbr1KNSWDgCYUec/dOcNWl/cJ3q1wg5sTjq37v0K1myp 9BMCtfsUjsMmQAXGdiCvAVfcsYimYmuiUMajxgFldUXYEqA1Zs+1QeqSZB83VNoA == ARC-Authentication-Results: i=1; mx5.messagingengine.com; arc=none (no signatures found); dkim=pass (1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=PuLXbXeC x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=pass (p=reject,has-list-id=yes,d=none) header.from=microsoft.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=stable-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=microsoft.com header.result=pass header_is_org_domain=yes Authentication-Results: mx5.messagingengine.com; arc=none (no signatures found); dkim=pass (1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=PuLXbXeC x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=pass (p=reject,has-list-id=yes,d=none) header.from=microsoft.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=stable-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=microsoft.com header.result=pass header_is_org_domain=yes Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753915AbeA1W7x (ORCPT ); Sun, 28 Jan 2018 17:59:53 -0500 Received: from mail-bn3nam01on0128.outbound.protection.outlook.com ([104.47.33.128]:55858 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753510AbeA1W1w (ORCPT ); Sun, 28 Jan 2018 17:27:52 -0500 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Guy Levi , Leon Romanovsky , "Doug Ledford" , Sasha Levin Subject: [PATCH AUTOSEL for 4.14 085/100] IB/mlx4: Fix RSS hash fields restrictions Thread-Topic: [PATCH AUTOSEL for 4.14 085/100] IB/mlx4: Fix RSS hash fields restrictions Thread-Index: AQHTmIcZNZm3EpiX1EaWo0V4TbEEpw== Date: Sun, 28 Jan 2018 22:26:54 +0000 Message-ID: <20180128222547.7398-85-alexander.levin@microsoft.com> References: <20180128222547.7398-1-alexander.levin@microsoft.com> In-Reply-To: <20180128222547.7398-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MW2PR2101MB1018;6:RKa0qFvlneR8aYoOFnz3/ZOo7WIthEW7D/rjep1PZ7+QtM2iKkryDprpGsHssAs/ZgdIEezyQizyXFKkXdDeGcfLhCE7IfaPhJViuK+IKb+T9DjjtGFN/3tQEfHbnQ/pMfNECuHoy10rz1dh3C4s7dUsZxeDwn466nOW5CJTr79umILc65F14HQg+siqqjx2htU+a8Pm+5X2wG26cI8l69iZEZc6s3bbR519TFZGQwvY9MjJ1oIcxnUVidaSy3GTwGkOSYB+SneUIPNMqCzeqE3E/I6tTBJmGyDP416zDamtClDNaWt+y8jzhVfKW+ks3g+D7pS+ANr4Fv6Qh2Mz3BEBXQZHlwsMyTnqXkNzvbcUTfUbMit+/ZAXlXC/FHwh;5:vROSuEdiNcb4UvjilWjH35ydGOXWhQ1EwdGbR+KKk970T8m+88OnqE+qjvWpx5/JZcKmdFEkp85Fti5g1d7aieDFu1JMYCIUA7z0FRKuTjjPwH+kCP+F2KxVCAaXU1jFRGumKyLv+WwLdBS1R6DpCTDAp8UF0Tb+H/ELnqnUUh0=;24:lAThmM/mmBU5XRTGac/gcdxd+ZFjl8AUqT/yJUmoLe3iec5l77TUSRtGDz5fypIFmhptUgxvwAfJB/LkzgQosO8g/KuNQ4uPWG6qh0RiGZI=;7:3EHGlxoMzBJT3GsTm99JWEA/UcHTzAdWl5edy2cqHeGAb+CXNmm1AzXz9V8j3GJAki18cH6wQUOq94+rXQB8ovAFxjorYmRYwoYA3nKMWfn5ki8FU7EnHg1axlUvxCiXPAgPIXmEMr5dbvlDWIY/cYczMEHr7+BZUtnFoaPFIU/mFczskO5U+Jc45vUGq1FyBaJt+aW5JuJ3dtTjsTxxEw8Xfl/lMkd5anDS9LOo3FQe8wE68R4qVvYr9dnQdwFJ x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e5110328-16c9-4bb7-81bc-08d5669e59a3 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7193020);SRVR:MW2PR2101MB1018; x-ms-traffictypediagnostic: MW2PR2101MB1018: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(61425038)(6040501)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231101)(944501161)(6055026)(61426038)(61427038)(6041288)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011);SRVR:MW2PR2101MB1018;BCL:0;PCL:0;RULEID:;SRVR:MW2PR2101MB1018; x-forefront-prvs: 05669A7924 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(39380400002)(39860400002)(366004)(346002)(376002)(199004)(189003)(53936002)(2501003)(6436002)(86362001)(6486002)(5250100002)(26005)(102836004)(6512007)(76176011)(6116002)(2900100001)(3846002)(36756003)(305945005)(7736002)(316002)(3660700001)(22452003)(3280700002)(54906003)(110136005)(99286004)(186003)(97736004)(1076002)(86612001)(81166006)(6666003)(2906002)(106356001)(14454004)(66066001)(4326008)(68736007)(5660300001)(25786009)(8936002)(10290500003)(81156014)(72206003)(107886003)(10090500001)(478600001)(2950100002)(105586002)(8676002)(6506007)(22906009)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:MW2PR2101MB1018;H:MW2PR2101MB1034.namprd21.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; x-microsoft-antispam-message-info: 5oRfKlffPqaGaupuPb5d6fbmN6FC4E8jl0eLFIgeFJgHLVRbeJStAsqPH+CJcEAGChN1eKt8LiU1Jzr0CrJHsw== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5110328-16c9-4bb7-81bc-08d5669e59a3 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2018 22:26:54.7828 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1018 Sender: stable-owner@vger.kernel.org X-Mailing-List: stable@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: From: Guy Levi [ Upstream commit 4d02ebd9bbbdde1d524e62b540b0402cee7bbcdf ] Mistakenly the driver didn't allow RSS hash fields combinations which involve both IPv4 and IPv6 protocols. This bug caused to failures for user's use cases for RSS. Consequently, this patch fixes this bug and allows any combination that the HW can support. Additionally, the patch fixes the driver to return an error in case the user provides an unsupported mask for RSS hash fields. Fixes: 3078f5f1bd8b ("IB/mlx4: Add support for RSS QP") Signed-off-by: Guy Levi Reviewed-by: Yishai Hadas Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford Signed-off-by: Sasha Levin --- drivers/infiniband/hw/mlx4/qp.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/q= p.c index fcfa08747899..9354fec8efe7 100644 --- a/drivers/infiniband/hw/mlx4/qp.c +++ b/drivers/infiniband/hw/mlx4/qp.c @@ -666,6 +666,19 @@ static int set_qp_rss(struct mlx4_ib_dev *dev, struct = mlx4_ib_rss *rss_ctx, return (-EOPNOTSUPP); } =20 + if (ucmd->rx_hash_fields_mask & ~(MLX4_IB_RX_HASH_SRC_IPV4 | + MLX4_IB_RX_HASH_DST_IPV4 | + MLX4_IB_RX_HASH_SRC_IPV6 | + MLX4_IB_RX_HASH_DST_IPV6 | + MLX4_IB_RX_HASH_SRC_PORT_TCP | + MLX4_IB_RX_HASH_DST_PORT_TCP | + MLX4_IB_RX_HASH_SRC_PORT_UDP | + MLX4_IB_RX_HASH_DST_PORT_UDP)) { + pr_debug("RX Hash fields_mask has unsupported mask (0x%llx)\n", + ucmd->rx_hash_fields_mask); + return (-EOPNOTSUPP); + } + if ((ucmd->rx_hash_fields_mask & MLX4_IB_RX_HASH_SRC_IPV4) && (ucmd->rx_hash_fields_mask & MLX4_IB_RX_HASH_DST_IPV4)) { rss_ctx->flags =3D MLX4_RSS_IPV4; @@ -691,11 +704,11 @@ static int set_qp_rss(struct mlx4_ib_dev *dev, struct= mlx4_ib_rss *rss_ctx, return (-EOPNOTSUPP); } =20 - if (rss_ctx->flags & MLX4_RSS_IPV4) { + if (rss_ctx->flags & MLX4_RSS_IPV4) rss_ctx->flags |=3D MLX4_RSS_UDP_IPV4; - } else if (rss_ctx->flags & MLX4_RSS_IPV6) { + if (rss_ctx->flags & MLX4_RSS_IPV6) rss_ctx->flags |=3D MLX4_RSS_UDP_IPV6; - } else { + if (!(rss_ctx->flags & (MLX4_RSS_IPV6 | MLX4_RSS_IPV4))) { pr_debug("RX Hash fields_mask is not supported - UDP must be set with I= Pv4 or IPv6\n"); return (-EOPNOTSUPP); } @@ -707,15 +720,14 @@ static int set_qp_rss(struct mlx4_ib_dev *dev, struct= mlx4_ib_rss *rss_ctx, =20 if ((ucmd->rx_hash_fields_mask & MLX4_IB_RX_HASH_SRC_PORT_TCP) && (ucmd->rx_hash_fields_mask & MLX4_IB_RX_HASH_DST_PORT_TCP)) { - if (rss_ctx->flags & MLX4_RSS_IPV4) { + if (rss_ctx->flags & MLX4_RSS_IPV4) rss_ctx->flags |=3D MLX4_RSS_TCP_IPV4; - } else if (rss_ctx->flags & MLX4_RSS_IPV6) { + if (rss_ctx->flags & MLX4_RSS_IPV6) rss_ctx->flags |=3D MLX4_RSS_TCP_IPV6; - } else { + if (!(rss_ctx->flags & (MLX4_RSS_IPV6 | MLX4_RSS_IPV4))) { pr_debug("RX Hash fields_mask is not supported - TCP must be set with I= Pv4 or IPv6\n"); return (-EOPNOTSUPP); } - } else if ((ucmd->rx_hash_fields_mask & MLX4_IB_RX_HASH_SRC_PORT_TCP) || (ucmd->rx_hash_fields_mask & MLX4_IB_RX_HASH_DST_PORT_TCP)) { pr_debug("RX Hash fields_mask is not supported - both TCP SRC and DST mu= st be set\n"); --=20 2.11.0