ctx->this_is_rollback = true;
                err2 = mlxsw_sp_acl_tcam_vchunk_migrate_all(mlxsw_sp, vregion,
                                                            ctx, credits);
-               if (err2)
+               if (err2) {
                        vregion->failed_rollback = true;
+                       trace_mlxsw_sp_acl_tcam_vregion_rehash_dis(mlxsw_sp,
+                                                                  vregion);
+                       dev_err(mlxsw_sp->bus_info->dev, "Failed to rollback during vregion migration fail\n");
+               }
        }
        mutex_unlock(&vregion->lock);
        trace_mlxsw_sp_acl_tcam_vregion_migrate_end(mlxsw_sp, vregion);
                                                ctx, credits);
        if (err) {
                dev_err(mlxsw_sp->bus_info->dev, "Failed to migrate vregion\n");
-               if (vregion->failed_rollback) {
-                       trace_mlxsw_sp_acl_tcam_vregion_rehash_dis(mlxsw_sp,
-                                                                  vregion);
-                       dev_err(mlxsw_sp->bus_info->dev, "Failed to rollback during vregion migration fail\n");
-               }
        }
 
        if (*credits >= 0)