Commit 3b1ebd8a authored by Michael J. Ruhl's avatar Michael J. Ruhl Committed by Duanqiang Wen
Browse files

clkdev: Update clkdev id usage to allow for longer names

mainline inclusion
from mainline-v6.9-rc1
commit 99f4570cfba1e60daafde737cb7e395006d719e6
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I9IP8F
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=99f4570cfba1e60daafde737cb7e395006d719e6



---------------------------------------------------------

clkdev DEV ID information is limited to an array of 20 bytes
(MAX_DEV_ID).  It is possible that the ID could be longer than
that.  If so, the lookup will fail because the "real ID" will
not match the copied value.

For instance, generating a device name for the I2C Designware
module using the PCI ID can result in a name of:

i2c_designware.39424

clkdev_create() will store:

i2c_designware.3942

The stored name is one off and will not match correctly during probe.

Increase the size of the ID to allow for a longer name.

Reviewed-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarMichael J. Ruhl <michael.j.ruhl@intel.com>
Link: https://lore.kernel.org/r/20240223202556.2194021-1-michael.j.ruhl@intel.com


Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
Signed-off-by: default avatarDuanqiang Wen <duanqiangwen@net-swift.com>
parent 262d7932
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ void clkdev_add_table(struct clk_lookup *cl, size_t num)
	mutex_unlock(&clocks_mutex);
}

#define MAX_DEV_ID	20
#define MAX_DEV_ID	24
#define MAX_CON_ID	16

struct clk_lookup_alloc {