2022-07-05 20:14:13

by Max Filippov

[permalink] [raw]
Subject: [PATCH] net/mlx5e: use div64_u64 for long division

This fixes the following build error on 32-bit architectures visible in
linux-next:

ERROR: modpost: "__divdi3" [drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko] undefined!
ERROR: modpost: "__udivdi3" [drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko] undefined!

Fixes: 6ddac26cf763 ("net/mlx5e: Add support to modify hardware flow meter parameters")
Signed-off-by: Max Filippov <[email protected]>
---
drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
index 28962b2134c7..81e7fe819017 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
// Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

+#include <asm/div64.h>
#include "lib/aso.h"
#include "en/tc/post_act.h"
#include "meter.h"
@@ -61,7 +62,7 @@ mlx5e_flow_meter_cir_calc(u64 cir, u8 *man, u8 *exp)
m = cir << e;
if ((s64)m < 0) /* overflow */
break;
- m /= MLX5_CONST_CIR;
+ m = div64_u64(m, MLX5_CONST_CIR);
if (m > 0xFF) /* man width 8 bit */
continue;
_cir = MLX5_CALC_CIR(m, e);
--
2.30.2


2022-07-05 22:03:28

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] net/mlx5e: use div64_u64 for long division

On Tue, 5 Jul 2022 12:50:25 -0700 Max Filippov wrote:
> This fixes the following build error on 32-bit architectures visible in
> linux-next:
>
> ERROR: modpost: "__divdi3" [drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko] undefined!
> ERROR: modpost: "__udivdi3" [drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko] undefined!
>
> Fixes: 6ddac26cf763 ("net/mlx5e: Add support to modify hardware flow meter parameters")
> Signed-off-by: Max Filippov <[email protected]>

Fixed by commit 55ae465222d0 ("net/mlx5: fix 32bit build"),
thanks.