lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <487dcede-4ad3-4987-aff4-937513d2fa14@wanadoo.fr>
Date: Sun, 14 Apr 2024 11:00:18 +0200
From: Christophe JAILLET <christophe.jaillet@...adoo.fr>
To: Jeremy Kerr <jk@...abs.org>, Joel Stanley <joel@....id.au>,
 Alistar Popple <alistair@...ple.id.au>, Eddie James <eajames@...ux.ibm.com>
Cc: linux-kernel@...r.kernel.org, kernel-janitors@...r.kernel.org,
 linux-fsi@...ts.ozlabs.org
Subject: Re: [PATCH] fsi: occ: Remove usage of the deprecated ida_simple_xx()
 API

Le 20/01/2024 à 09:07, Christophe JAILLET a écrit :
> ida_alloc() and ida_free() should be preferred to the deprecated
> ida_simple_get() and ida_simple_remove().
> 
> Note that the upper limit of ida_simple_get() is exclusive, but the one of
> ida_alloc_range() is inclusive. So, this upper limit, INT_MAX, should have
> been changed to INT_MAX-1.
> 
> But, it is likely that the INT_MAX 'idx' is valid that the max value passed
> to ida_simple_get() should have been 0.
> 
> So, allow this INT_MAX 'idx' value now.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@...adoo.fr>
> ---
> The change related to the INT_MAX value is speculative.
> Review with care. (or I can re-submit with INT_MAX-1, to be safe :))
> ---

Hi,

polite reminder.

CJ



>   drivers/fsi/fsi-occ.c | 17 ++++++++---------
>   1 file changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/fsi/fsi-occ.c b/drivers/fsi/fsi-occ.c
> index da35ca9e84a6..f7157c1d77d8 100644
> --- a/drivers/fsi/fsi-occ.c
> +++ b/drivers/fsi/fsi-occ.c
> @@ -656,17 +656,16 @@ static int occ_probe(struct platform_device *pdev)
>   		rc = of_property_read_u32(dev->of_node, "reg", &reg);
>   		if (!rc) {
>   			/* make sure we don't have a duplicate from dts */
> -			occ->idx = ida_simple_get(&occ_ida, reg, reg + 1,
> -						  GFP_KERNEL);
> +			occ->idx = ida_alloc_range(&occ_ida, reg, reg,
> +						   GFP_KERNEL);
>   			if (occ->idx < 0)
> -				occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX,
> -							  GFP_KERNEL);
> +				occ->idx = ida_alloc_min(&occ_ida, 1,
> +							 GFP_KERNEL);
>   		} else {
> -			occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX,
> -						  GFP_KERNEL);
> +			occ->idx = ida_alloc_min(&occ_ida, 1, GFP_KERNEL);
>   		}
>   	} else {
> -		occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX, GFP_KERNEL);
> +		occ->idx = ida_alloc_min(&occ_ida, 1, GFP_KERNEL);
>   	}
>   
>   	platform_set_drvdata(pdev, occ);
> @@ -680,7 +679,7 @@ static int occ_probe(struct platform_device *pdev)
>   	rc = misc_register(&occ->mdev);
>   	if (rc) {
>   		dev_err(dev, "failed to register miscdevice: %d\n", rc);
> -		ida_simple_remove(&occ_ida, occ->idx);
> +		ida_free(&occ_ida, occ->idx);
>   		kvfree(occ->buffer);
>   		return rc;
>   	}
> @@ -719,7 +718,7 @@ static int occ_remove(struct platform_device *pdev)
>   	else
>   		device_for_each_child(&pdev->dev, NULL, occ_unregister_of_child);
>   
> -	ida_simple_remove(&occ_ida, occ->idx);
> +	ida_free(&occ_ida, occ->idx);
>   
>   	return 0;
>   }


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ