On Mon, Mar 16, 2026 at 07:15:09PM +0530, Aadeshveer Singh wrote:
> switchover_bw is a uint64_t, so switchover_bw / 1000 results in an
> integer division. This value is then assigned to expected_bw_per_ms
> which is of type double. This results in losing precision and is type
> unsafe. Adding explicit cast ensures floating-point division.
>
> Signed-off-by: Aadeshveer Singh <aadeshveer07@gmail.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Thanks,
> ---
> migration/migration.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/migration/migration.c b/migration/migration.c
> index f949708629..7094080285 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -3134,7 +3134,7 @@ static void migration_update_counters(MigrationState *s,
> * If the user specified a switchover bandwidth, let's trust the
> * user so that can be more accurate than what we estimated.
> */
> - expected_bw_per_ms = switchover_bw / 1000;
> + expected_bw_per_ms = (double)switchover_bw / 1000;
> } else {
> /* If the user doesn't specify bandwidth, we use the estimated */
> expected_bw_per_ms = bandwidth;
> --
> 2.53.0
>
--
Peter Xu