* [PATCH v2 hwmon] hwmon: (pmbus) Fix driver info initialization in probe routine
@ 2019-02-18 19:54 Vadim Pasternak
2019-02-18 22:23 ` Guenter Roeck
0 siblings, 1 reply; 2+ messages in thread
From: Vadim Pasternak @ 2019-02-18 19:54 UTC (permalink / raw)
To: linux; +Cc: linux-hwmon, Vadim Pasternak
Fix tps53679_probe() by using dynamically allocated "pmbus_driver_info"
structure instead of static. Usage of static structures causes
overwritten of the field "vrm_version", in case the system is equipped
with several tps53679 devices with the different "vrm_version".
In such case the last probed device overwrites this field for all
others.
Fixes: 610526527a13 ("hwmon: (pmbus) Add support for Texas Instruments tps53679 device")
Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
---
v1->v2:
Comments pointed out by Guenter:
- Use devm_kmemdup().
---
drivers/hwmon/pmbus/tps53679.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c
index 85b515cd9df0..2bc352c5357f 100644
--- a/drivers/hwmon/pmbus/tps53679.c
+++ b/drivers/hwmon/pmbus/tps53679.c
@@ -80,7 +80,14 @@ static struct pmbus_driver_info tps53679_info = {
static int tps53679_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
- return pmbus_do_probe(client, id, &tps53679_info);
+ struct pmbus_driver_info *info;
+
+ info = devm_kmemdup(&client->dev, &tps53679_info, sizeof(*info),
+ GFP_KERNEL);
+ if (!info)
+ return -ENOMEM;
+
+ return pmbus_do_probe(client, id, info);
}
static const struct i2c_device_id tps53679_id[] = {
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2 hwmon] hwmon: (pmbus) Fix driver info initialization in probe routine
2019-02-18 19:54 [PATCH v2 hwmon] hwmon: (pmbus) Fix driver info initialization in probe routine Vadim Pasternak
@ 2019-02-18 22:23 ` Guenter Roeck
0 siblings, 0 replies; 2+ messages in thread
From: Guenter Roeck @ 2019-02-18 22:23 UTC (permalink / raw)
To: Vadim Pasternak; +Cc: linux-hwmon
On 2/18/19 11:54 AM, Vadim Pasternak wrote:
> Fix tps53679_probe() by using dynamically allocated "pmbus_driver_info"
> structure instead of static. Usage of static structures causes
> overwritten of the field "vrm_version", in case the system is equipped
> with several tps53679 devices with the different "vrm_version".
> In such case the last probed device overwrites this field for all
> others.
>
> Fixes: 610526527a13 ("hwmon: (pmbus) Add support for Texas Instruments tps53679 device")
> Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Applied.
Thanks,
Guenter
> ---
> v1->v2:
> Comments pointed out by Guenter:
> - Use devm_kmemdup().
> ---
> drivers/hwmon/pmbus/tps53679.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c
> index 85b515cd9df0..2bc352c5357f 100644
> --- a/drivers/hwmon/pmbus/tps53679.c
> +++ b/drivers/hwmon/pmbus/tps53679.c
> @@ -80,7 +80,14 @@ static struct pmbus_driver_info tps53679_info = {
> static int tps53679_probe(struct i2c_client *client,
> const struct i2c_device_id *id)
> {
> - return pmbus_do_probe(client, id, &tps53679_info);
> + struct pmbus_driver_info *info;
> +
> + info = devm_kmemdup(&client->dev, &tps53679_info, sizeof(*info),
> + GFP_KERNEL);
> + if (!info)
> + return -ENOMEM;
> +
> + return pmbus_do_probe(client, id, info);
> }
>
> static const struct i2c_device_id tps53679_id[] = {
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-02-18 22:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-18 19:54 [PATCH v2 hwmon] hwmon: (pmbus) Fix driver info initialization in probe routine Vadim Pasternak
2019-02-18 22:23 ` Guenter Roeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).