Received: by 2002:a17:90a:9307:0:0:0:0 with SMTP id p7csp3949391pjo; Tue, 3 Mar 2020 09:57:47 -0800 (PST) X-Google-Smtp-Source: ADFU+vsV1wT15B/PRbfJUbtQfAl67Oqu8hNk2CS/VUMg1p2rJu3A37pIdFi6PLIQuJkWrKVhNE+Q X-Received: by 2002:a05:6830:231d:: with SMTP id u29mr3250210ote.1.1583258267633; Tue, 03 Mar 2020 09:57:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583258267; cv=none; d=google.com; s=arc-20160816; b=s0mDVEzZtUtg9CKiNGqFQFiCuEv8Y40RzdyVX2v/o70wxRoCnazfwm6Qgv60UVyTIf x13qfKzDkn283uE5l4bQo0coHkTkLSxuxtcmyPp0Lwsb4YxkZ8hny66OG5CdjG6lWvrH B4EjnpCXihLeNVe1BzPyuqiPilzLUwd6gChjsdrOU8VK5sglX07yb8137iHY5zGttwdj XXmDBpO3URdclDVF2e6zjf2VZs1UToEeXgsgPysWtkQvSFiSwk75qMI5ep/ZoYCM+72u bno89zQRx4T1D6mW9eQNgGhsL06S4CI8YC7C8AYAdKw8hswYuuHUVi374bXl4hdbyG6g ZKDg== 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=R10qczECOc5W+asL5h8esGS7ll786x6MM2zQfT9/94mV/+0PXnnNMcnWl1evseb9Tv TqYog9RFCosGsy5KKgK7rKfLD+XU7Rp4Psd9iv1eVsmANo14u+iKuiDMnOBJ4YG7E3qo YyuX2JBCBv/3wW2oi/oQ8JdCBXhdBlK7VRpp0FeqbAvDSO3BqfzfibK16tOG31jYQm8X HVDp2A34Z/skEznfbXoRYF+M6cDfsh6CQGyNQ7ElkBUkKKXqn5E4KXctH8vB3tXhm9gB NpK8lcLDjIyNDUw+BAnGfP5XUq3WFzp6wvNNevfCSTRZYgrMGB5yr33lrFlAawox5vtv o/Ww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EpdOOyKo; 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 o7si9766953ote.49.2020.03.03.09.57.35; Tue, 03 Mar 2020 09:57:47 -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=EpdOOyKo; 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 S1732805AbgCCRz5 (ORCPT + 99 others); Tue, 3 Mar 2020 12:55:57 -0500 Received: from mail.kernel.org ([198.145.29.99]:37830 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732791AbgCCRzx (ORCPT ); Tue, 3 Mar 2020 12:55:53 -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 BCF2B20728; Tue, 3 Mar 2020 17:55:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583258153; bh=0H7zd2fm3yBoPSOT5TXSvbCR26pgmFzavbvMTKWqxQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EpdOOyKoIZ0Ms64nP0Kii3z6OO5wgzu87mEos/dLN+S/U6asak8lcRySgYoytzz5B mx8/J+NlMbxCnnoi3gfYaqeOKoucSciJJCjrPii/8RExCB7FgcWVGhqAq1lm0FdgrX sN0NtugYe2xgKeoHxzrrFWynpit3ExKifaSG19qA= 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.4 055/152] net: ena: rss: store hash function as values and not bits Date: Tue, 3 Mar 2020 18:42:33 +0100 Message-Id: <20200303174308.695700387@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200303174302.523080016@linuxfoundation.org> References: <20200303174302.523080016@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