mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
vdpa/mlx5: Fix oversized null mkey longer than 32bit
commita6097e0a54
upstream. 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:94abbccdf2
("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> Message-Id: <20250220193732.521462-2-dtatulea@nvidia.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
515c34cff8
commit
fef7fd3653
|
@ -165,9 +165,12 @@ again:
|
||||||
klm->bcount = cpu_to_be32(klm_bcount(dmr->end - dmr->start));
|
klm->bcount = cpu_to_be32(klm_bcount(dmr->end - dmr->start));
|
||||||
preve = dmr->end;
|
preve = dmr->end;
|
||||||
} else {
|
} else {
|
||||||
|
u64 bcount = min_t(u64, dmr->start - preve, MAX_KLM_SIZE);
|
||||||
|
|
||||||
klm->key = cpu_to_be32(mvdev->res.null_mkey);
|
klm->key = cpu_to_be32(mvdev->res.null_mkey);
|
||||||
klm->bcount = cpu_to_be32(klm_bcount(dmr->start - preve));
|
klm->bcount = cpu_to_be32(klm_bcount(bcount));
|
||||||
preve = dmr->start;
|
preve += bcount;
|
||||||
|
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user