octeontx2-af: Fix the size of memory allocated for the 'id_bmap' bitmap
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Fri, 25 Nov 2022 12:24:00 +0000 (13:24 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 1 Dec 2022 04:42:19 +0000 (20:42 -0800)
commit6d135d9e2b004024b84bd7c308f58300b64d29b6
tree869e82b7cdf24a0cf2b86a1aa79c2498eabb4b8a
parent05a7b52ee5e489a0caf52299ee73c18409c086b3
octeontx2-af: Fix the size of memory allocated for the 'id_bmap' bitmap

This allocation is really spurious.
The size of the bitmap is 'tot_ids' and it is used as such in the driver.

So we could expect something like:
   table->id_bmap = devm_kcalloc(rvu->dev, BITS_TO_LONGS(table->tot_ids),
         sizeof(long), GFP_KERNEL);

However, when the bitmap is allocated, we allocate:
   BITS_TO_LONGS(table->tot_ids) * table->tot_ids ~=
   table->tot_ids / 32 * table->tot_ids ~=
   table->tot_ids^2 / 32

It is proportional to the square of 'table->tot_ids' which seems to
potentially be big.

Allocate the expected amount of memory, and switch to the bitmap API to
have it more straightforward.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/ce2710771939065d68f95d86a27cf7cea7966365.1669378798.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c