Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp3651756ybf; Tue, 3 Mar 2020 09:49:22 -0800 (PST) X-Google-Smtp-Source: ADFU+vspdbfa4G7Fgc8jDSm9o4gZrQIXwyDQuQh3hayu7m6GvjlYia/4Wu4gMSkLuNMT1lg+MAn2 X-Received: by 2002:aca:d40c:: with SMTP id l12mr1158795oig.65.1583257762295; Tue, 03 Mar 2020 09:49:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583257762; cv=none; d=google.com; s=arc-20160816; b=Ht3jKJf8r1NbZZjOzxF/3M7aP9qrAl/Jh0FZVHLkjfVnu/kGDfLXFv599DvtVoWKw9 7X0eUTk/SfFFGSJ8r+zJlDUkEkMF9is4UeDyzExFjMqauHe56yUQWE0lSaVA6ijTAkTa +3dvHcKwyX74ugUf1XoIOZaQY1yB5jX2VtlnxuNTLz+WkR2aIbTCr4G7usoZ+SpAV7n3 /uG2cBtHCzgixrDx74pY5QSvijQmVN/ps/yxaa5s1zBhUAvnvW1cZacpXLV6lzhWH9nN Vn6lfg/+PI6KYKalXNeH/ad50BxbDtutGvvkV7BNzdVDCUV1Uw1ZK9HyAjDGCG5pUQUy yaVg== 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=ZzfbOHdDttDzrHQ9HB08JsAu3wGUa2sG8aZkPdKMsdk=; b=kU+4ceuIKOuhJ7oVMWrmjfpmvlztoKhCbgl0oo4yoAzGIxQQlras6Q8JqWhSZEuHcA JB3TifXSbTtIUGPUrKc9KQz8Dwy7UwRO7/3UjvHzCrpEQ4aVuDwkgZ/92wa2xUpGbEUW JHAFnqWo0HEMhkj4Z33h6Fw5A6/lfmtMnhbQGQEH80PqSSUa7udVZ6etmDc86Vfv4JQe Fq/5Fy2Wo288m77IMobj1M3xAOFsAJlQbRZXmvxCqb7bkHCE4mGeU5JdoZhSPDzOJr0b HJRn3k0ox7F+L/hakua9aTG5Zonc70jmBsINpV/zxHgv5v3OZY3dN7Hqy6GT7IMV1BPy Qaig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=VBtcChjB; 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 q2si3140267otm.54.2020.03.03.09.49.10; Tue, 03 Mar 2020 09:49:22 -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=VBtcChjB; 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 S1731239AbgCCRqt (ORCPT + 99 others); Tue, 3 Mar 2020 12:46:49 -0500 Received: from mail.kernel.org ([198.145.29.99]:53496 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730225AbgCCRqr (ORCPT ); Tue, 3 Mar 2020 12:46:47 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 7F78420870; Tue, 3 Mar 2020 17:46:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583257607; bh=0H7zd2fm3yBoPSOT5TXSvbCR26pgmFzavbvMTKWqxQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VBtcChjBnRa52o4TUK1TA0cvxQXnznmSm21U4HMA1HxJnMs9DIomdZE354VX0M+PC 15x+zgMaq3NmYAVk7ChEdeMp6S9AZNn4IQI2sIKWKZxT85CKe+Nznfe3Cnl78Iw1gC CeGjJ4PbFJ7kUvpB2DrEJvCMGn8ahB2zUuRHEWF8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sameeh Jubran , Arthur Kiyanovski , "David S. Miller" , Sasha Levin Subject: [PATCH 5.5 059/176] net: ena: rss: store hash function as values and not bits Date: Tue, 3 Mar 2020 18:42:03 +0100 Message-Id: <20200303174311.417806638@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200303174304.593872177@linuxfoundation.org> References: <20200303174304.593872177@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Arthur Kiyanovski [ Upstream commit 4844470d472d660c26149ad764da2406adb13423 ] The device receives, stores and retrieves the hash function value as bits and not as their enum value. The bug: * In ena_com_set_hash_function() we set cmd.u.flow_hash_func.selected_func to the bit value of rss->hash_func. (1 << rss->hash_func) * In ena_com_get_hash_function() we retrieve the hash function and store it's bit value in rss->hash_func. (Now the bit value of rss->hash_func is stored in rss->hash_func instead of it's enum value) The fix: This commit fixes the issue by converting the retrieved hash function values from the device to the matching enum value of the set bit using ffs(). ffs() finds the first set bit's index in a word. Since the function returns 1 for the LSB's index, we need to subtract 1 from the returned value (note that BIT(0) is 1). Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Sameeh Jubran Signed-off-by: Arthur Kiyanovski Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/amazon/ena/ena_com.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c index 6f758ece86f60..8ab192cb26b74 100644 --- a/drivers/net/ethernet/amazon/ena/ena_com.c +++ b/drivers/net/ethernet/amazon/ena/ena_com.c @@ -2370,7 +2370,11 @@ int ena_com_get_hash_function(struct ena_com_dev *ena_dev, if (unlikely(rc)) return rc; - rss->hash_func = get_resp.u.flow_hash_func.selected_func; + /* ffs() returns 1 in case the lsb is set */ + rss->hash_func = ffs(get_resp.u.flow_hash_func.selected_func); + if (rss->hash_func) + rss->hash_func--; + if (func) *func = rss->hash_func; -- 2.20.1