]> www.infradead.org Git - users/dwmw2/linux.git/commit
ice: Use order_base_2 to calculate higher power of 2
authorJacob Keller <jacob.e.keller@intel.com>
Thu, 9 Aug 2018 13:28:57 +0000 (06:28 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Oct 2018 23:59:24 +0000 (16:59 -0700)
commit1c83a5aa0f263ff49b35d6f72579b282dd9c0019
tree19c60a2df508ea760c654d8094d79714e50032aa
parent1dd0b6ce76ee1c60f2a7f3cd222872bf42ef10ca
ice: Use order_base_2 to calculate higher power of 2

[ Upstream commit 1eb43fc754485d772b1165118a8fb80c385f0492 ]

Currently, we use a combination of ilog2 and is_power_of_2() to
calculate the next power of 2 for the qcount. This appears to be causing
a warning on some combinations of GCC and the Linux kernel:

MODPOST 1 modules
WARNING: "____ilog2_NaN" [ice.ko] undefined!

This appears to because because GCC realizes that qcount could be zero
in some circumstances and thus attempts to link against the
intentionally undefined ___ilog2_NaN function.

The order_base_2 function is intentionally defined to return 0 when
passed 0 as an argument, and thus will be safe to use here.

This not only fixes the warning but makes the resulting code slightly
cleaner, and is really what we should have used originally.

Also update the comment to make it more clear that we are rounding up,
not just incrementing the ilog2 of qcount unconditionally.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/intel/ice/ice_main.c