On Fri, Jul 07, 2023 at 10:17:23AM +0300, Dan Carpenter wrote: > Ping! Ah, Joerg isn't on CC. Fixing that now... Will > On Thu, Apr 06, 2023 at 11:55:31AM +0300, Dan Carpenter wrote: > > The ida_alloc_range() function returns negative error codes on error. > > On success it returns values in the min to max range (inclusive). It > > never returns more then INT_MAX even if "max" is higher. It never > > returns values in the 0 to (min - 1) range. > > > > The bug is that "min" is an unsigned int so negative error codes will > > be promoted to high positive values errors treated as success. > > > > Fixes: 1a14bf0fc7ed ("iommu/sva: Use GFP_KERNEL for pasid allocation") > > Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> > > --- > > drivers/iommu/iommu-sva.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c > > index c4ab3c457fbc..6e4f1ba1c148 100644 > > --- a/drivers/iommu/iommu-sva.c > > +++ b/drivers/iommu/iommu-sva.c > > @@ -33,8 +33,9 @@ static int iommu_sva_alloc_pasid(struct mm_struct *mm, ioasid_t min, ioasid_t ma > > } > > > > ret = ida_alloc_range(&iommu_global_pasid_ida, min, max, GFP_KERNEL); > > - if (ret < min) > > + if (ret < 0) > > goto out; > > + > > mm->pasid = ret; > > ret = 0; > > out: > > -- > > 2.39.1