virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH vhost v2] vdpa/mlx5: Fix oversized null mkey longer than 32bit
@ 2025-02-20 19:37 Dragos Tatulea
  2025-02-21  1:12 ` Jason Wang
  0 siblings, 1 reply; 3+ messages in thread
From: Dragos Tatulea @ 2025-02-20 19:37 UTC (permalink / raw)
  To: Michael S . Tsirkin, virtualization
  Cc: Dragos Tatulea, Jason Wang, Eugenio Perez Martin, Si-Wei Liu, kvm,
	linux-kernel, Gal Pressman, Xuan Zhuo, stable, Cong Meng

From: Si-Wei Liu <si-wei.liu@oracle.com>

create_user_mr() has correct code to count the number of null keys
used to fill in a hole for the memory map. However, fill_indir()
does not follow the same to cap the range up to the 1GB limit
correspondingly. Fill in more null keys for the gaps in between,
so that null keys are correctly populated.

Fixes: 94abbccdf291 ("vdpa/mlx5: Add shared memory registration code")
Cc: stable@vger.kernel.org
Reported-by: Cong Meng <cong.meng@oracle.com>
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Acked-by: Eugenio Pérez <eperezma@redhat.com>
---
Changes in v2:
- Added Reported-by tag.
- Fixed typo found during review.
---
 drivers/vdpa/mlx5/core/mr.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c
index 8455f08f5d40..61424342c096 100644
--- a/drivers/vdpa/mlx5/core/mr.c
+++ b/drivers/vdpa/mlx5/core/mr.c
@@ -190,9 +190,12 @@ static void fill_indir(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mkey, v
 			klm->bcount = cpu_to_be32(klm_bcount(dmr->end - dmr->start));
 			preve = dmr->end;
 		} else {
+			u64 bcount = min_t(u64, dmr->start - preve, MAX_KLM_SIZE);
+
 			klm->key = cpu_to_be32(mvdev->res.null_mkey);
-			klm->bcount = cpu_to_be32(klm_bcount(dmr->start - preve));
-			preve = dmr->start;
+			klm->bcount = cpu_to_be32(klm_bcount(bcount));
+			preve += bcount;
+
 			goto again;
 		}
 	}
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH vhost v2] vdpa/mlx5: Fix oversized null mkey longer than 32bit
  2025-02-20 19:37 [PATCH vhost v2] vdpa/mlx5: Fix oversized null mkey longer than 32bit Dragos Tatulea
@ 2025-02-21  1:12 ` Jason Wang
  2025-03-03  4:06   ` Lei Yang
  0 siblings, 1 reply; 3+ messages in thread
From: Jason Wang @ 2025-02-21  1:12 UTC (permalink / raw)
  To: Dragos Tatulea
  Cc: Michael S . Tsirkin, virtualization, Eugenio Perez Martin,
	Si-Wei Liu, kvm, linux-kernel, Gal Pressman, Xuan Zhuo, stable,
	Cong Meng

On Fri, Feb 21, 2025 at 3:40 AM Dragos Tatulea <dtatulea@nvidia.com> wrote:
>
> From: Si-Wei Liu <si-wei.liu@oracle.com>
>
> create_user_mr() has correct code to count the number of null keys
> used to fill in a hole for the memory map. However, fill_indir()
> does not follow the same to cap the range up to the 1GB limit
> correspondingly. Fill in more null keys for the gaps in between,
> so that null keys are correctly populated.
>
> Fixes: 94abbccdf291 ("vdpa/mlx5: Add shared memory registration code")
> Cc: stable@vger.kernel.org
> Reported-by: Cong Meng <cong.meng@oracle.com>
> Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
> Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
> Acked-by: Eugenio Pérez <eperezma@redhat.com>

Acked-by: Jason Wang <jasowang@redhat.com>

Thanks


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH vhost v2] vdpa/mlx5: Fix oversized null mkey longer than 32bit
  2025-02-21  1:12 ` Jason Wang
@ 2025-03-03  4:06   ` Lei Yang
  0 siblings, 0 replies; 3+ messages in thread
From: Lei Yang @ 2025-03-03  4:06 UTC (permalink / raw)
  To: Dragos Tatulea
  Cc: Michael S . Tsirkin, virtualization, Eugenio Perez Martin,
	Si-Wei Liu, kvm, linux-kernel, Gal Pressman, Xuan Zhuo, stable,
	Jason Wang, Cong Meng

I tested this patch with virtio-net and mlx5 vdpa regression tests,
everything works fine.

Tested-by: Lei Yang <leiyang@redhat.com>

On Fri, Feb 21, 2025 at 9:13 AM Jason Wang <jasowang@redhat.com> wrote:
>
> On Fri, Feb 21, 2025 at 3:40 AM Dragos Tatulea <dtatulea@nvidia.com> wrote:
> >
> > From: Si-Wei Liu <si-wei.liu@oracle.com>
> >
> > create_user_mr() has correct code to count the number of null keys
> > used to fill in a hole for the memory map. However, fill_indir()
> > does not follow the same to cap the range up to the 1GB limit
> > correspondingly. Fill in more null keys for the gaps in between,
> > so that null keys are correctly populated.
> >
> > Fixes: 94abbccdf291 ("vdpa/mlx5: Add shared memory registration code")
> > Cc: stable@vger.kernel.org
> > Reported-by: Cong Meng <cong.meng@oracle.com>
> > Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
> > Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
> > Acked-by: Eugenio Pérez <eperezma@redhat.com>
>
> Acked-by: Jason Wang <jasowang@redhat.com>
>
> Thanks
>
>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-03-03  4:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-20 19:37 [PATCH vhost v2] vdpa/mlx5: Fix oversized null mkey longer than 32bit Dragos Tatulea
2025-02-21  1:12 ` Jason Wang
2025-03-03  4:06   ` Lei Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).