]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: ufs: ufshcd-pltfrm: Use of_property_count_u32_elems() to get property length
authorRob Herring (Arm) <robh@kernel.org>
Thu, 8 Aug 2024 17:07:03 +0000 (11:07 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 12 Aug 2024 22:17:43 +0000 (18:17 -0400)
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>
Link: https://lore.kernel.org/r/20240808170704.1438658-1-robh@kernel.org
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/ufshcd-pltfrm.c

index 2e1eb898a27c51e4689b04432dab658e121190b9..0c9b303ccfa0e39585dae4e1087e89371aff952c 100644 (file)
@@ -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;