umber-kernel/drivers/regulator
Bjorn Andersson 96c5ea9e7a regulator: core: Remove regulator supply_name length limit
[ Upstream commit e243cdd87b911ce9968b62e4ab2b680dfadc4341 ]

When creating the regulator object, associated with a consumer device,
the supply_name is string formatted into a statically sized buffer on
the stack, then strdup()'ed onto the heap.

Not only is the dance on the stack unnecessary, but when the device's
name is long we might not fit the constructed supply_name in the fixed
64 byte buffer on the stack.

One such case can be seen on the Qualcomm Rb3Gen2 board, where we find a
PCIe controller, with a PCIe switch, with a USB controller, with a USB
hub, consuming a regulator. In this example the dev->kobj.name itself is
62 characters long.

Drop the temporary buffer on the stack and kasprintf() the string
directly on the heap, both to simplify the code, and to remove the
length limitation.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Link: https://patch.msgid.link/20260211-regulator-supply-name-length-v1-1-3875541c1576@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-03-04 07:20:39 -05:00
..
88pg86x.c
88pm800-regulator.c
88pm886-regulator.c regulator: Add regulators driver for Marvell 88PM886 PMIC 2024-06-28 15:41:11 +01:00
88pm8607.c
Kconfig MFD for v6.18 2025-10-01 12:04:12 -07:00
Makefile MFD for v6.18 2025-10-01 12:04:12 -07:00
aat2870-regulator.c
ab8500-ext.c
ab8500.c
act8865-regulator.c regulator: act8865-regulator: switch psy_cfg from of_node to fwnode 2025-06-22 01:39:51 +02:00
act8945a-regulator.c
ad5398.c regulator: ad5398: Fix incorrect power down bit mask 2025-02-06 11:27:24 +00:00
adp5055-regulator.c regulator: adp5055: Remove unneeded semicolon 2025-04-14 11:22:40 +01:00
anatop-regulator.c
arizona-ldo1.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
arizona-micsupp.c
as3711-regulator.c
as3722-regulator.c
atc260x-regulator.c
aw37503-regulator.c
axp20x-regulator.c regulator: axp20x: AXP717: dcdc4 doesn't have delay 2025-03-19 12:28:26 +00:00
bcm590xx-regulator.c regulator: bcm590xx: Add support for BCM59054 regulators 2025-05-22 10:57:46 +01:00
bd718x7-regulator.c regulator: bd718x7: Fix voltages scaled by resistor divider 2025-10-30 11:30:23 +00:00
bd9571mwv-regulator.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
bd9576-regulator.c regulator: bd9576: Constify struct linear_range 2024-08-06 15:24:01 +01:00
bd71815-regulator.c regulator: bd71815: fix ramp values 2024-06-12 16:19:49 +01:00
bd71828-regulator.c
bd96801-regulator.c regulator: bd96801: Support ROHM BD96806 PMIC 2025-04-24 14:53:18 +01:00
bq257xx-regulator.c regulator: bq257xx: Add bq257xx boost regulator driver 2025-09-11 15:55:41 +01:00
core.c regulator: core: Remove regulator supply_name length limit 2026-03-04 07:20:39 -05:00
cpcap-regulator.c
cros-ec-regulator.c regulator: cros-ec: use devm_kmemdup_array() 2025-02-28 14:01:07 +00:00
da903x-regulator.c regulator: Fix typos in the comment 2024-09-10 12:40:38 +01:00
da9052-regulator.c regulator: da9052: Constify static data 2024-09-10 12:44:03 +01:00
da9055-regulator.c regulator: da9055: Constify static data 2024-09-10 12:44:04 +01:00
da9062-regulator.c
da9063-regulator.c regulator: Few constifications of static data 2024-09-11 11:20:37 +01:00
da9121-regulator.c regulator: da9121: Fix Wvoid-pointer-to-enum-cast warning 2025-05-10 23:58:04 +09:00
da9121-regulator.h
da9210-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
da9210-regulator.h
da9211-regulator.c regulator: da9211: Constify struct regulator_desc 2024-09-09 18:27:02 +01:00
da9211-regulator.h
db8500-prcmu.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
dbx500-prcmu.c
dbx500-prcmu.h
devres.c Convert regulator drivers to use 2025-02-28 16:33:32 +00:00
dummy.c regulator: dummy: convert to use the faux device interface 2025-03-14 09:10:29 +01:00
dummy.h
event.c
fan53555.c regulator: fan53555: add enable_time support and soft-start times 2025-06-16 13:26:23 +01:00
fan53880.c
fixed-helper.c regulator: fixed-helper: Add missing "Return" kerneldoc section 2024-08-29 14:20:28 +01:00
fixed.c regulator: fixed: Rely on the core freeing the enable GPIO 2025-12-18 14:03:36 +01:00
gpio-regulator.c regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods 2025-07-03 12:22:35 +01:00
helpers.c regulator: update some comments ([gs]et_voltage_vsel vs [gs]et_voltage_sel) 2024-09-13 14:57:08 +01:00
hi655x-regulator.c
hi6421-regulator.c regulator: hi6421: Constify static data 2024-09-10 12:44:07 +01:00
hi6421v530-regulator.c regulator: hi6421v530: Use container_of and constify static data 2024-09-10 12:44:17 +01:00
hi6421v600-regulator.c regulator: hi6421v600: Constify static data 2024-09-10 12:44:08 +01:00
internal.h regulator: Add devres version of of_regulator_get_optional() 2024-09-30 01:11:41 +02:00
irq_helpers.c regulator: allow user configuration of hardware protection action 2025-03-16 23:24:14 -07:00
isl6271a-regulator.c regulator: isl6271a: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-30 01:11:42 +02:00
isl9305.c
lm363x-regulator.c
lochnagar-regulator.c
lp872x.c
lp873x-regulator.c
lp3971.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
lp3972.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
lp8755.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
lp8788-buck.c
lp8788-ldo.c
lp87565-regulator.c
ltc3589.c
ltc3676.c
max1586.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max5970-regulator.c regulator: max5970: Drop unused structs 2024-10-10 12:16:58 +01:00
max8649.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max8660.c
max8893.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max8907-regulator.c
max8925-regulator.c
max8952.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max8973-regulator.c regulator: max8973: Use irq_get_trigger_type() helper 2024-09-13 14:57:07 +01:00
max8997-regulator.c regulator: max8997: Use scoped device node handling to simplify error paths 2024-08-14 18:21:44 +01:00
max8998.c
max14577-regulator.c regulator: max14577: Add error check for max14577_read_reg() 2025-05-26 14:01:29 +01:00
max20086-regulator.c regulator: max20086: Fix refcount leak in max20086_parse_regulators_dt() 2025-06-08 23:29:48 +01:00
max20411-regulator.c regulator: add missing MODULE_DESCRIPTION() macro 2024-06-10 15:39:29 +01:00
max77503-regulator.c regulator: max77503: remove unused struct 'max77503_dev' 2024-05-29 11:24:22 +01:00
max77541-regulator.c
max77620-regulator.c
max77650-regulator.c regulator: max77650: Use container_of and constify static data 2024-09-10 12:44:18 +01:00
max77686-regulator.c
max77693-regulator.c
max77802-regulator.c regulator: Unify "negative error number" terminology in comments 2024-08-29 14:20:30 +01:00
max77826-regulator.c regulator: max77826: Constify static data 2024-09-10 12:44:11 +01:00
max77838-regulator.c regulator: max77838: add max77838 regulator driver 2025-09-15 19:27:50 +01:00
max77857-regulator.c regulator: max77857: Make max77857_id static 2024-08-01 12:50:10 +01:00
mc13xxx-regulator-core.c
mc13xxx.h
mc13783-regulator.c
mc13892-regulator.c
mcp16502.c regulator: mcp16502: Add supplier for regulators 2024-08-13 12:41:44 +01:00
mp886x.c regulator: mp886x: Fix ID table driver_data 2025-06-30 16:06:40 +01:00
mp5416.c regulator: mp5416: Constify struct regulator_desc 2024-09-09 18:27:01 +01:00
mp8859.c
mpq7920.c
mpq7920.h
mt6311-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
mt6311-regulator.h
mt6315-regulator.c
mt6323-regulator.c
mt6331-regulator.c
mt6332-regulator.c
mt6357-regulator.c regulator: update some comments ([gs]et_voltage_vsel vs [gs]et_voltage_sel) 2024-09-13 14:57:08 +01:00
mt6358-regulator.c
mt6359-regulator.c
mt6360-regulator.c
mt6370-regulator.c regulator: mt6370: Fix spelling mistake in mt6370_regualtor_register 2025-07-24 18:04:38 +01:00
mt6380-regulator.c
mt6397-regulator.c
mtk-dvfsrc-regulator.c regulator: mtk-dvfsrc: Add support for MediaTek MT8196 DVFSRC 2025-06-23 13:12:31 +01:00
of_regulator.c regulator: Add (devm_)of_regulator_get() 2025-02-24 15:26:08 +00:00
palmas-regulator.c
pbias-regulator.c
pca9450-regulator.c regulator: pca9450: Fix error code in probe() 2025-12-18 14:03:11 +01:00
pcap-regulator.c regulator: pcap: Constify static data 2024-09-10 12:44:13 +01:00
pf8x00-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
pf530x-regulator.c regulator: pf530x: Add a driver for the NXP PF5300 Regulator 2025-09-05 14:20:37 +01:00
pf0900-regulator.c regulator: pf0900: Add PMIC PF0900 support 2025-08-10 21:09:45 +01:00
pf9453-regulator.c regulator: pf9453: convert to use maple tree register cache 2025-04-24 12:56:29 +01:00
pfuze100-regulator.c regulator: pfuze100: Constify static data 2024-09-10 12:44:14 +01:00
pv88060-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
pv88060-regulator.h
pv88080-regulator.c
pv88080-regulator.h
pv88090-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
pv88090-regulator.h
pwm-regulator.c
qcom-labibb-regulator.c
qcom-pm8008-regulator.c regulator: pm8008: fix probe failure due to negative voltage selector 2025-08-24 22:41:04 +01:00
qcom-refgen-regulator.c regulator: remove unneeded 'fast_io' parameter in regmap_config 2025-08-13 19:06:29 +01:00
qcom-rpmh-regulator.c regulator: qcom-rpmh: add support for pm7550 regulators 2025-07-13 22:37:09 +01:00
qcom_rpm-regulator.c
qcom_smd-regulator.c regulator: qcom-smd: make smd_vreg_rpm static 2024-09-30 01:11:44 +02:00
qcom_spmi-regulator.c regulator: qcom_spmi: Constify struct spmi_voltage_range 2025-05-19 11:41:48 +01:00
qcom_usb_vbus-regulator.c
raa215300.c
rc5t583-regulator.c
regnl.h
renesas-usb-vbus-regulator.c regulator: Call of_node_put() only once in rzg2l_usb_vbus_regulator_probe() 2024-09-30 01:11:43 +02:00
rk808-regulator.c objtool, regulator: rk808: Remove potential undefined behavior in rk806_set_mode_dcdc() 2025-03-25 23:00:29 +01:00
rn5t618-regulator.c
rohm-regulator.c regulator: rohm-regulator: warn if unsupported voltage is set 2024-05-16 13:36:42 +01:00
rpi-panel-attiny-regulator.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
rpi-panel-v2-regulator.c regulator: rpi-panel-v2: Add shutdown hook 2025-06-17 12:50:30 +01:00
rt4801-regulator.c
rt4803.c
rt4831-regulator.c regulator: add missing MODULE_DESCRIPTION() macro 2024-06-10 15:39:29 +01:00
rt5033-regulator.c
rt5120-regulator.c regulator: rt5120: Convert comma to semicolon 2024-07-29 01:19:05 +01:00
rt5133-regulator.c regulator: rt5133: Fix IS_ERR() vs NULL bug in rt5133_validate_vendor_info() 2025-08-19 16:52:47 +01:00
rt5190a-regulator.c
rt5739.c regulator: rt5739: Enable REGCACHE_MAPLE 2025-06-30 12:15:38 +01:00
rt5759-regulator.c
rt6160-regulator.c regulator: rt6160: Add rt6166 vout min_uV setting for compatible 2025-07-16 11:15:26 +01:00
rt6190-regulator.c
rt6245-regulator.c
rtmv20-regulator.c
rtq2134-regulator.c
rtq2208-regulator.c regulator: rtq2208: Correct LDO2 logic judgment bits 2025-11-27 11:41:00 +00:00
rtq6752-regulator.c regulator: rtq6752: make const read-only array fault_mask static 2025-03-17 17:35:52 +00:00
s2dos05-regulator.c regulator: add s2dos05 regulator support 2025-08-11 14:08:53 +01:00
s2mpa01.c
s2mps11.c regulator: s2mps11: Add support for S2MPU05 regulators 2025-03-13 12:38:52 +00:00
s5m8767.c regulator: s5m8767: Convert to GPIO descriptors 2025-04-07 12:53:34 +01:00
sc2731-regulator.c
scmi-regulator.c regulator: scmi: Use int type to store negative error codes 2025-09-01 14:04:18 +01:00
sky81452-regulator.c
slg51000-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
slg51000-regulator.h
spacemit-p1.c regulator: spacemit-p1: Fix n_voltages for BUCK and LDO regulators 2026-02-11 13:42:00 +01:00
stm32-booster.c
stm32-pwr.c regulator: stm32-pwr: add support of STM32MP13 2024-05-27 01:32:22 +01:00
stm32-vrefbuf.c regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-04 13:09:53 +01:00
stpmic1_regulator.c
stw481x-vmmc.c
sun20i-regulator.c
sy7636a-regulator.c regulator: sy7636a: fix lifecycle of power good gpio 2025-09-08 16:33:24 +01:00
sy8106a-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
sy8824x.c regulator: sy8824x: Fix ID table driver_data 2025-06-30 16:06:39 +01:00
sy8827n.c regulator: sy8827n: make enable gpio NONEXCLUSIVE 2025-07-07 23:32:39 +01:00
ti-abb-regulator.c
tps6105x-regulator.c
tps6286x-regulator.c regulator: tps6286x-regulator: Fix a copy & paste error 2025-07-14 14:44:05 +01:00
tps6287x-regulator.c regulator: tps6287x-regulator: Enable REGCACHE_MAPLE 2025-06-30 12:15:39 +01:00
tps6507x-regulator.c
tps6524x-regulator.c regulator: tps6524x: Remove unnecessary memset 2025-08-11 14:08:52 +01:00
tps6586x-regulator.c
tps6594-regulator.c regulator: tps6594-regulator: Remove unneeded semicolon 2025-08-11 14:08:51 +01:00
tps51632-regulator.c
tps62360-regulator.c
tps65023-regulator.c regulator: tps65023: Constify static data 2024-09-10 12:44:09 +01:00
tps65086-regulator.c
tps65090-regulator.c
tps65132-regulator.c
tps65217-regulator.c
tps65218-regulator.c
tps65219-regulator.c regulator: tps65219: regulator: tps65219: Fix error codes in probe() 2025-08-19 16:51:03 +01:00
tps65910-regulator.c
tps65912-regulator.c
tps68470-regulator.c
twl-regulator.c
twl6030-regulator.c
uniphier-regulator.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
userspace-consumer.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
vctrl-regulator.c
vexpress-regulator.c
virtual.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
vqmmc-ipq4019-regulator.c
wm831x-dcdc.c
wm831x-isink.c regulator: wm831x-isink: Convert comma to semicolon 2024-07-29 01:19:04 +01:00
wm831x-ldo.c
wm8350-regulator.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
wm8400-regulator.c regulator: wm8400: Constify struct regulator_desc 2024-09-09 21:08:42 +01:00
wm8994-regulator.c