Re: [PATCH vfio] vfio/mlx5: Fix range size calculation upon tracker creation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 8 Feb 2023 17:22:34 +0200
Yishai Hadas <yishaih@xxxxxxxxxx> wrote:

> Fix range size calculation to include the last byte of each range.
> 
> In addition, log round up the length of the total ranges to be stricter.
> 
> Fixes: c1d050b0d169 ("vfio/mlx5: Create and destroy page tracker object")
> Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxx>
> ---
>  drivers/vfio/pci/mlx5/cmd.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/vfio/pci/mlx5/cmd.c b/drivers/vfio/pci/mlx5/cmd.c
> index 5161d845c478..deed156e6165 100644
> --- a/drivers/vfio/pci/mlx5/cmd.c
> +++ b/drivers/vfio/pci/mlx5/cmd.c
> @@ -830,7 +830,7 @@ static int mlx5vf_create_tracker(struct mlx5_core_dev *mdev,
>  	node = interval_tree_iter_first(ranges, 0, ULONG_MAX);
>  	for (i = 0; i < num_ranges; i++) {
>  		void *addr_range_i_base = range_list_ptr + record_size * i;
> -		unsigned long length = node->last - node->start;
> +		unsigned long length = node->last - node->start + 1;
>  
>  		MLX5_SET64(page_track_range, addr_range_i_base, start_address,
>  			   node->start);
> @@ -840,7 +840,7 @@ static int mlx5vf_create_tracker(struct mlx5_core_dev *mdev,
>  	}
>  
>  	WARN_ON(node);
> -	log_addr_space_size = ilog2(total_ranges_len);
> +	log_addr_space_size = ilog2(roundup_pow_of_two(total_ranges_len));
>  	if (log_addr_space_size <
>  	    (MLX5_CAP_ADV_VIRTUALIZATION(mdev, pg_track_log_min_addr_space)) ||
>  	    log_addr_space_size >

Applied to vfio next branch for v6.3.  Thanks,

Alex




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux