Message ID | 20240731201407.1838385-9-robh@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | ufs: ufshcd: Use of_property_count_u32_elems() to get property length | expand |
On 7/31/24 1:14 PM, Rob Herring (Arm) wrote: > Replace of_get_property() with the type specific > of_property_count_u32_elems() to get the property length. > > This is part of a larger effort to remove callers of of_get_property() > and similar functions. of_get_property() leaks the DT property data > pointer which is a problem for dynamically allocated nodes which may > be freed. The "ufshcd:" qualifier in the patch subject is confusing. Please change this into something that unambiguously refers to the platform driver. Thanks, Bart.
diff --git a/drivers/ufs/host/ufshcd-pltfrm.c b/drivers/ufs/host/ufshcd-pltfrm.c index 2e1eb898a27c..0c9b303ccfa0 100644 --- a/drivers/ufs/host/ufshcd-pltfrm.c +++ b/drivers/ufs/host/ufshcd-pltfrm.c @@ -31,7 +31,6 @@ static int ufshcd_parse_clock_info(struct ufs_hba *hba) const char *name; u32 *clkfreq = NULL; struct ufs_clk_info *clki; - int len = 0; size_t sz = 0; if (!np) @@ -50,15 +49,12 @@ static int ufshcd_parse_clock_info(struct ufs_hba *hba) if (cnt <= 0) goto out; - if (!of_get_property(np, "freq-table-hz", &len)) { + sz = of_property_count_u32_elems(np, "freq-table-hz"); + if (sz <= 0) { dev_info(dev, "freq-table-hz property not specified\n"); goto out; } - if (len <= 0) - goto out; - - sz = len / sizeof(*clkfreq); if (sz != 2 * cnt) { dev_err(dev, "%s len mismatch\n", "freq-table-hz"); ret = -EINVAL;
Replace of_get_property() with the type specific of_property_count_u32_elems() to get the property length. This is part of a larger effort to remove callers of of_get_property() and similar functions. of_get_property() leaks the DT property data pointer which is a problem for dynamically allocated nodes which may be freed. Signed-off-by: Rob Herring (Arm) <robh@kernel.org> --- drivers/ufs/host/ufshcd-pltfrm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)