From: Aadeshveer Singh <[email protected]> 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 <[email protected]> Reviewed-by: Peter Xu <[email protected]> Link: https://lore.kernel.org/qemu-devel/[email protected] Signed-off-by: Fabiano Rosas <[email protected]> --- migration/migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/migration.c b/migration/migration.c index 7feeba804f..5c9aaa6e58 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3141,7 +3141,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.51.0
