mirror of https://gitee.com/openkylin/linux.git
mlx5: avoid 64-bit division in dr_icm_pool_mr_create()
Recently added code introduces 64-bit division in dr_icm_pool_mr_create()
so that build on 32-bit architectures fails with
ERROR: "__umoddi3" [drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko] undefined!
As the divisor is always a power of 2, we can use bitwise operation
instead.
Fixes: 29cf8febd1
("net/mlx5: DR, ICM pool memory allocator")
Reported-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e95584a889
commit
8b6b82ad16
|
@ -137,7 +137,8 @@ dr_icm_pool_mr_create(struct mlx5dr_icm_pool *pool,
|
|||
|
||||
icm_mr->icm_start_addr = icm_mr->dm.addr;
|
||||
|
||||
align_diff = icm_mr->icm_start_addr % align_base;
|
||||
/* align_base is always a power of 2 */
|
||||
align_diff = icm_mr->icm_start_addr & (align_base - 1);
|
||||
if (align_diff)
|
||||
icm_mr->used_length = align_base - align_diff;
|
||||
|
||||
|
|
Loading…
Reference in New Issue