Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp1257367ybi; Fri, 12 Jul 2019 12:24:25 -0700 (PDT) X-Google-Smtp-Source: APXvYqxxB6/7SkmAV1lMVMgsGw5i11Gmez3W/xCn2GE9SbOUlDeygnsc07vZ+iAX4HK/trEhnHvT X-Received: by 2002:a17:90a:1d8:: with SMTP id 24mr14272795pjd.70.1562959465116; Fri, 12 Jul 2019 12:24:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562959465; cv=none; d=google.com; s=arc-20160816; b=Dno3fCREeVqXfdWaRx4YNhRzDdU6B9SotmvDeMo8bHgNo7ryIZcGZ4txPLigYd05v9 K1G/hdxzjcni2P0hvsyiJ5ynEkIDFsSME9JtGP6nfSSKF+NtDN293WEaDBHkCWpJlITU yQd5ik5d4YHb4SV8qPdGq0ciOJ7+Pkv78pLEAJNtRpeGFQ88Z1A44QrVxO9ufKedbJyR 1hmXMG6OjG574+mrU4bpqsD+NTvm/J+IqdEMOGhnU9D45oavemxMBeCquaZysupgtMta zdXPpkth4FVphjLQK36t8L0YKum4vlyBphhEcVXj9U2QTBlc2+AxxlarUvocIMexcfte cu5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=nTx5Q1t5rZtAKWvNKqv4EB9nf5UeJFN+8yFT1L6eySw=; b=XduyDHck7CW75h9ePmFu1sDhZqHO/CM+fAR6F9w1k/2gbkYdJUWFfTxS2ix9WFHPiU BYQiLzsj/afgLJ8PqEmq5R5n/rH1PZ/s47DqHM0+7felhPRdEoU62n9c9ah8oXSz4EpE bqlafX7EzsDv+weTSiTbbD16Sp+2+IRxgwGxwY9lcEalPWw9CMMeSJHoL/NhAiwmZDmD sZDmoLWdqycMmMcMfOWK8cLoyP7lnmT75g5lTamPrTYRF/52LSST/cKK3Raaik1sWcXx RAqZfNkm1RTl0kLQYfkPBgqG6MxyN1iagEVD8YnTjcxqv/pvThram4f42aSxujPLhe7s G34A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=fDcMVGES; 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 o31si546958pgb.579.2019.07.12.12.24.08; Fri, 12 Jul 2019 12:24:25 -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; dkim=pass header.i=@lca.pw header.s=google header.b=fDcMVGES; 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 S1727374AbfGLTXv (ORCPT + 99 others); Fri, 12 Jul 2019 15:23:51 -0400 Received: from mail-qk1-f195.google.com ([209.85.222.195]:36491 "EHLO mail-qk1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727141AbfGLTXv (ORCPT ); Fri, 12 Jul 2019 15:23:51 -0400 Received: by mail-qk1-f195.google.com with SMTP id g18so7272042qkl.3 for ; Fri, 12 Jul 2019 12:23:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=from:to:cc:subject:date:message-id; bh=nTx5Q1t5rZtAKWvNKqv4EB9nf5UeJFN+8yFT1L6eySw=; b=fDcMVGES6+Tam4qkQH1rbV5vSngkrm4Gfv6CSMXyXvOZbujsJS6uf/LdoRmtRqCuKO VkAmPvLFIpcjeN89SqK/8+8wZrls3RovYxZbRn2iCT/V+ZdCoQLoA8ySXtWQMxW+ndR0 6Gblv8mS3osSLqglsrrm5QPPbm80CkqphcATpprJaZbO9aQ95sOGkhB6Wq4RbXcUVwtA EuJUgk63IQN8+V67/ceHDhPxQuUR1uZ9NP8pKSXZ8BD3cn3CM1BP4Pk7b8iWsBoKXtaJ uaFKEtJnxDUTtHk8ebCIOl7uGx/Rd5FJiLCr3BeECuoL+PBAAS/IA4LxRlqgF/J0LEq4 VNvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=nTx5Q1t5rZtAKWvNKqv4EB9nf5UeJFN+8yFT1L6eySw=; b=RWOfO+atM2JcStWdgve0+kp7D7U/9ykJ0ouT4Ir/YRSTWrXpgkur4zrXY7lu16gTVp 7LRwnHct1SyebAV7q2Dbxm9MzK77hSkpkQ514QGeAQ2fm9m7leQdJ20e7klGbQshPhju SO55v5fRPi0OCG0VtW7V85B0jn9fIzChbAiIIqqPL0g90QoqJjwqSL63R7UiRmgwJuP2 10ZSukZxWMMgQJm8AjMc47uoani3/b64Ts7yuMxslQBoMEKm4HD2OKqx6JogU1iNBK4K zl956UPvzXSFk9JhGDiIJ/dPICflyh0sTCc1sgKp9hLBIgutRWVuTf4yx1bwWMd7kkIz UeTg== X-Gm-Message-State: APjAAAXL7RN3Z2pXDEC6Yk6TI7W9ezpSWdad1842YZLNBqHxbVl9e3Ja 80tVcJnjNqXVUD9ieYGc1SQO6g== X-Received: by 2002:ae9:e217:: with SMTP id c23mr7455726qkc.227.1562959430223; Fri, 12 Jul 2019 12:23:50 -0700 (PDT) Received: from qcai.nay.com (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id b4sm3589339qtp.77.2019.07.12.12.23.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Jul 2019 12:23:49 -0700 (PDT) From: Qian Cai To: davem@davemloft.net Cc: sathya.perla@broadcom.com, ajit.khaparde@broadcom.com, sriharsha.basavapatna@broadcom.com, somnath.kotur@broadcom.com, arnd@arndb.de, dhowells@redhat.com, hpa@zytor.com, netdev@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Qian Cai Subject: [PATCH] be2net: fix adapter->big_page_size miscaculation Date: Fri, 12 Jul 2019 15:23:21 -0400 Message-Id: <1562959401-19815-1-git-send-email-cai@lca.pw> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The commit d66acc39c7ce ("bitops: Optimise get_order()") introduced a problem for the be2net driver as "rx_frag_size" could be a module parameter that can be changed while loading the module. That commit checks __builtin_constant_p() first in get_order() which cause "adapter->big_page_size" to be assigned a value based on the the default "rx_frag_size" value at the compilation time. It also generate a compilation warning, In file included from ./arch/powerpc/include/asm/page_64.h:107, from ./arch/powerpc/include/asm/page.h:242, from ./arch/powerpc/include/asm/mmu.h:132, from ./arch/powerpc/include/asm/lppaca.h:47, from ./arch/powerpc/include/asm/paca.h:17, from ./arch/powerpc/include/asm/current.h:13, from ./include/linux/thread_info.h:21, from ./arch/powerpc/include/asm/processor.h:39, from ./include/linux/prefetch.h:15, from drivers/net/ethernet/emulex/benet/be_main.c:14: drivers/net/ethernet/emulex/benet/be_main.c: In function 'be_rx_cqs_create': ./include/asm-generic/getorder.h:54:9: warning: comparison is always true due to limited range of data type [-Wtype-limits] (((n) < (1UL << PAGE_SHIFT)) ? 0 : \ ^ drivers/net/ethernet/emulex/benet/be_main.c:3138:33: note: in expansion of macro 'get_order' adapter->big_page_size = (1 << get_order(rx_frag_size)) * PAGE_SIZE; ^~~~~~~~~ Fix it by using __get_order() instead which will calculate in runtime. Fixes: d66acc39c7ce ("bitops: Optimise get_order()") Signed-off-by: Qian Cai --- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 82015c8a5ed7..db13e714df7c 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -3135,7 +3135,7 @@ static int be_rx_cqs_create(struct be_adapter *adapter) if (adapter->num_rx_qs == 0) adapter->num_rx_qs = 1; - adapter->big_page_size = (1 << get_order(rx_frag_size)) * PAGE_SIZE; + adapter->big_page_size = (1 << __get_order(rx_frag_size)) * PAGE_SIZE; for_all_rx_queues(adapter, rxo, i) { rxo->adapter = adapter; cq = &rxo->cq; -- 1.8.3.1