Message ID | 1390878720-8676-1-git-send-email-badarkhe.manish@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Manish, On Tue, Jan 28, 2014 at 08:42:00AM +0530, Manish Badarkhe wrote: > Update the code to use devm_* API so that driver core will manage > resources. > > Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> > --- > Changes since V1: > 1. Updated driver to use "devm_kzalloc" to "kstrdup". > 2. Updated commit message. > > Not tested on any board. > > :100644 100644 5ea64b9... e9763a4... M drivers/regulator/fixed.c > drivers/regulator/fixed.c | 42 ++++++++++++------------------------------ > 1 file changed, 12 insertions(+), 30 deletions(-) > > diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c > index 5ea64b9..e9763a4 100644 > --- a/drivers/regulator/fixed.c > +++ b/drivers/regulator/fixed.c > @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) > GFP_KERNEL); > if (drvdata == NULL) { > dev_err(&pdev->dev, "Failed to allocate device data\n"); > - ret = -ENOMEM; > - goto err; > + return -ENOMEM; > } > > - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); > + drvdata->desc.name = devm_kzalloc(&pdev->dev, > + strlen(config->supply_name) + 1, > + GFP_KERNEL); > if (drvdata->desc.name == NULL) { > dev_err(&pdev->dev, "Failed to allocate supply name\n"); > - ret = -ENOMEM; > - goto err; > + return -ENOMEM; > } Umm, I am fairly certain that devm_kzalloc() can't be used as a substitute for kstrdup, at least not without accompanying memcpy. Thanks.
Hi Dmitry, Thank you for your review. On Tue, Jan 28, 2014 at 12:03 PM, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > Hi Manish, > > On Tue, Jan 28, 2014 at 08:42:00AM +0530, Manish Badarkhe wrote: >> Update the code to use devm_* API so that driver core will manage >> resources. >> >> Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> >> --- >> Changes since V1: >> 1. Updated driver to use "devm_kzalloc" to "kstrdup". >> 2. Updated commit message. >> >> Not tested on any board. >> >> :100644 100644 5ea64b9... e9763a4... M drivers/regulator/fixed.c >> drivers/regulator/fixed.c | 42 ++++++++++++------------------------------ >> 1 file changed, 12 insertions(+), 30 deletions(-) >> >> diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c >> index 5ea64b9..e9763a4 100644 >> --- a/drivers/regulator/fixed.c >> +++ b/drivers/regulator/fixed.c >> @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) >> GFP_KERNEL); >> if (drvdata == NULL) { >> dev_err(&pdev->dev, "Failed to allocate device data\n"); >> - ret = -ENOMEM; >> - goto err; >> + return -ENOMEM; >> } >> >> - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, >> + strlen(config->supply_name) + 1, >> + GFP_KERNEL); >> if (drvdata->desc.name == NULL) { >> dev_err(&pdev->dev, "Failed to allocate supply name\n"); >> - ret = -ENOMEM; >> - goto err; >> + return -ENOMEM; >> } > > Umm, I am fairly certain that devm_kzalloc() can't be used as a > substitute for kstrdup, at least not without accompanying memcpy. Yes, I have provided allocation but it should be followed with assignment. Can I modify like this, + drvdata->desc.name = devm_kzalloc(&pdev->dev, + strlen(config->supply_name) + 1, + GFP_KERNEL); + if (drvdata->desc.name) + sprintf(drvdata->desc.name, "%s", config->supply_name); Thanks Manish Badakhe -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tuesday, 28. January 2014 12:46:01 Manish Badarkhe wrote: > Hi Dmitry, > > Thank you for your review. > > On Tue, Jan 28, 2014 at 12:03 PM, Dmitry Torokhov > > <dmitry.torokhov@gmail.com> wrote: > > Hi Manish, > > > > On Tue, Jan 28, 2014 at 08:42:00AM +0530, Manish Badarkhe wrote: > >> Update the code to use devm_* API so that driver core will manage > >> resources. > >> > >> Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> > >> --- > >> Changes since V1: > >> 1. Updated driver to use "devm_kzalloc" to "kstrdup". > >> 2. Updated commit message. > >> > >> Not tested on any board. > >> > >> :100644 100644 5ea64b9... e9763a4... M drivers/regulator/fixed.c > >> : > >> drivers/regulator/fixed.c | 42 > >> ++++++++++++------------------------------ > >> 1 file changed, 12 insertions(+), 30 deletions(-) > >> > >> diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c > >> index 5ea64b9..e9763a4 100644 > >> --- a/drivers/regulator/fixed.c > >> +++ b/drivers/regulator/fixed.c > >> @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct > >> platform_device *pdev)>> > >> GFP_KERNEL); > >> > >> if (drvdata == NULL) { > >> > >> dev_err(&pdev->dev, "Failed to allocate device data\n"); > >> > >> - ret = -ENOMEM; > >> - goto err; > >> + return -ENOMEM; > >> > >> } > >> > >> - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); > >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, > >> + strlen(config->supply_name) + 1, > >> + GFP_KERNEL); > >> > >> if (drvdata->desc.name == NULL) { > >> > >> dev_err(&pdev->dev, "Failed to allocate supply name\n"); > >> > >> - ret = -ENOMEM; > >> - goto err; > >> + return -ENOMEM; > >> > >> } > > > > Umm, I am fairly certain that devm_kzalloc() can't be used as a > > substitute for kstrdup, at least not without accompanying memcpy. > > Yes, I have provided allocation but it should be followed with assignment. > Can I modify like this, > > + drvdata->desc.name = devm_kzalloc(&pdev->dev, > + strlen(config->supply_name) + 1, > + GFP_KERNEL); > + if (drvdata->desc.name) > + sprintf(drvdata->desc.name, "%s", config->supply_name); hmm, so you replaced a general helper function by open coding the string- duplication. Doesn't this defeat the target of simplifying the code? Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Heiko Thank you for your reply. On Tue, Jan 28, 2014 at 1:08 PM, Heiko Stübner <heiko@sntech.de> wrote: > On Tuesday, 28. January 2014 12:46:01 Manish Badarkhe wrote: >> Hi Dmitry, >> >> Thank you for your review. >> >> On Tue, Jan 28, 2014 at 12:03 PM, Dmitry Torokhov >> >> <dmitry.torokhov@gmail.com> wrote: >> > Hi Manish, >> > >> > On Tue, Jan 28, 2014 at 08:42:00AM +0530, Manish Badarkhe wrote: >> >> Update the code to use devm_* API so that driver core will manage >> >> resources. >> >> >> >> Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> >> >> --- >> >> Changes since V1: >> >> 1. Updated driver to use "devm_kzalloc" to "kstrdup". >> >> 2. Updated commit message. >> >> >> >> Not tested on any board. >> >> >> >> :100644 100644 5ea64b9... e9763a4... M drivers/regulator/fixed.c >> >> : >> >> drivers/regulator/fixed.c | 42 >> >> ++++++++++++------------------------------ >> >> 1 file changed, 12 insertions(+), 30 deletions(-) >> >> >> >> diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c >> >> index 5ea64b9..e9763a4 100644 >> >> --- a/drivers/regulator/fixed.c >> >> +++ b/drivers/regulator/fixed.c >> >> @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct >> >> platform_device *pdev)>> >> >> GFP_KERNEL); >> >> >> >> if (drvdata == NULL) { >> >> >> >> dev_err(&pdev->dev, "Failed to allocate device data\n"); >> >> >> >> - ret = -ENOMEM; >> >> - goto err; >> >> + return -ENOMEM; >> >> >> >> } >> >> >> >> - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); >> >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, >> >> + strlen(config->supply_name) + 1, >> >> + GFP_KERNEL); >> >> >> >> if (drvdata->desc.name == NULL) { >> >> >> >> dev_err(&pdev->dev, "Failed to allocate supply name\n"); >> >> >> >> - ret = -ENOMEM; >> >> - goto err; >> >> + return -ENOMEM; >> >> >> >> } >> > >> > Umm, I am fairly certain that devm_kzalloc() can't be used as a >> > substitute for kstrdup, at least not without accompanying memcpy. >> >> Yes, I have provided allocation but it should be followed with assignment. >> Can I modify like this, >> >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, >> + strlen(config->supply_name) + 1, >> + GFP_KERNEL); >> + if (drvdata->desc.name) >> + sprintf(drvdata->desc.name, "%s", config->supply_name); > > hmm, so you replaced a general helper function by open coding the string- > duplication. Doesn't this defeat the target of simplifying the code? Intention here, is to use devm_ API and to adopt this I have to do these modifications for "kstrdup" functions. I have seen in regulator folder almost all drivers adopted to "devm_" API. Hence same thing I am following to update this driver. Please let me know whether to go ahead with this patch or retain driver as it is. Regards Manish Badarkhe -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tuesday, 28. January 2014 14:16:39 Manish Badarkhe wrote: > Hi Heiko > > Thank you for your reply. > > On Tue, Jan 28, 2014 at 1:08 PM, Heiko Stübner <heiko@sntech.de> wrote: > > On Tuesday, 28. January 2014 12:46:01 Manish Badarkhe wrote: > >> Hi Dmitry, > >> > >> Thank you for your review. > >> > >> On Tue, Jan 28, 2014 at 12:03 PM, Dmitry Torokhov > >> > >> <dmitry.torokhov@gmail.com> wrote: > >> > Hi Manish, > >> > > >> > On Tue, Jan 28, 2014 at 08:42:00AM +0530, Manish Badarkhe wrote: > >> >> Update the code to use devm_* API so that driver core will manage > >> >> resources. > >> >> > >> >> Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> > >> >> --- > >> >> Changes since V1: > >> >> 1. Updated driver to use "devm_kzalloc" to "kstrdup". > >> >> 2. Updated commit message. > >> >> > >> >> Not tested on any board. > >> >> > >> >> :100644 100644 5ea64b9... e9763a4... M > >> >> :drivers/regulator/fixed.c > >> >> : > >> >> drivers/regulator/fixed.c | 42 > >> >> ++++++++++++------------------------------ > >> >> 1 file changed, 12 insertions(+), 30 deletions(-) > >> >> > >> >> diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c > >> >> index 5ea64b9..e9763a4 100644 > >> >> --- a/drivers/regulator/fixed.c > >> >> +++ b/drivers/regulator/fixed.c > >> >> @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct > >> >> platform_device *pdev)>> > >> >> > >> >> GFP_KERNEL); > >> >> > >> >> if (drvdata == NULL) { > >> >> > >> >> dev_err(&pdev->dev, "Failed to allocate device data\n"); > >> >> > >> >> - ret = -ENOMEM; > >> >> - goto err; > >> >> + return -ENOMEM; > >> >> > >> >> } > >> >> > >> >> - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); > >> >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, > >> >> + strlen(config->supply_name) + > >> >> 1, > >> >> + GFP_KERNEL); > >> >> > >> >> if (drvdata->desc.name == NULL) { > >> >> > >> >> dev_err(&pdev->dev, "Failed to allocate supply name\n"); > >> >> > >> >> - ret = -ENOMEM; > >> >> - goto err; > >> >> + return -ENOMEM; > >> >> > >> >> } > >> > > >> > Umm, I am fairly certain that devm_kzalloc() can't be used as a > >> > substitute for kstrdup, at least not without accompanying memcpy. > >> > >> Yes, I have provided allocation but it should be followed with > >> assignment. > >> Can I modify like this, > >> > >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, > >> + strlen(config->supply_name) + 1, > >> + GFP_KERNEL); > >> + if (drvdata->desc.name) > >> + sprintf(drvdata->desc.name, "%s", config->supply_name); > > > > hmm, so you replaced a general helper function by open coding the string- > > duplication. Doesn't this defeat the target of simplifying the code? > > Intention here, is to use devm_ API and to adopt this I have to do these > modifications for "kstrdup" functions. I have seen in regulator folder > almost all drivers adopted to "devm_" API. Hence same thing I am following > to update this driver. Please let me know whether to go ahead with this > patch or retain driver as it is. I don't have a strong opinion on this and others are most likely more qualified to have a definitive answer, I just found it strange to exchange one open-coded pattern against another open-coded one. So don't let me keep you from it ;-) Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Jan 28, 2014 at 2:25 PM, Heiko Stübner <heiko@sntech.de> wrote: > On Tuesday, 28. January 2014 14:16:39 Manish Badarkhe wrote: >> Hi Heiko >> >> Thank you for your reply. >> >> On Tue, Jan 28, 2014 at 1:08 PM, Heiko Stübner <heiko@sntech.de> wrote: >> > On Tuesday, 28. January 2014 12:46:01 Manish Badarkhe wrote: >> >> Hi Dmitry, >> >> >> >> Thank you for your review. >> >> >> >> On Tue, Jan 28, 2014 at 12:03 PM, Dmitry Torokhov >> >> >> >> <dmitry.torokhov@gmail.com> wrote: >> >> > Hi Manish, >> >> > >> >> > On Tue, Jan 28, 2014 at 08:42:00AM +0530, Manish Badarkhe wrote: >> >> >> Update the code to use devm_* API so that driver core will manage >> >> >> resources. >> >> >> >> >> >> Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> >> >> >> --- >> >> >> Changes since V1: >> >> >> 1. Updated driver to use "devm_kzalloc" to "kstrdup". >> >> >> 2. Updated commit message. >> >> >> >> >> >> Not tested on any board. >> >> >> >> >> >> :100644 100644 5ea64b9... e9763a4... M >> >> >> :drivers/regulator/fixed.c >> >> >> : >> >> >> drivers/regulator/fixed.c | 42 >> >> >> ++++++++++++------------------------------ >> >> >> 1 file changed, 12 insertions(+), 30 deletions(-) >> >> >> >> >> >> diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c >> >> >> index 5ea64b9..e9763a4 100644 >> >> >> --- a/drivers/regulator/fixed.c >> >> >> +++ b/drivers/regulator/fixed.c >> >> >> @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct >> >> >> platform_device *pdev)>> >> >> >> >> >> >> GFP_KERNEL); >> >> >> >> >> >> if (drvdata == NULL) { >> >> >> >> >> >> dev_err(&pdev->dev, "Failed to allocate device data\n"); >> >> >> >> >> >> - ret = -ENOMEM; >> >> >> - goto err; >> >> >> + return -ENOMEM; >> >> >> >> >> >> } >> >> >> >> >> >> - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); >> >> >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, >> >> >> + strlen(config->supply_name) + >> >> >> 1, >> >> >> + GFP_KERNEL); >> >> >> >> >> >> if (drvdata->desc.name == NULL) { >> >> >> >> >> >> dev_err(&pdev->dev, "Failed to allocate supply name\n"); >> >> >> >> >> >> - ret = -ENOMEM; >> >> >> - goto err; >> >> >> + return -ENOMEM; >> >> >> >> >> >> } >> >> > >> >> > Umm, I am fairly certain that devm_kzalloc() can't be used as a >> >> > substitute for kstrdup, at least not without accompanying memcpy. >> >> >> >> Yes, I have provided allocation but it should be followed with >> >> assignment. >> >> Can I modify like this, >> >> >> >> + drvdata->desc.name = devm_kzalloc(&pdev->dev, >> >> + strlen(config->supply_name) + 1, >> >> + GFP_KERNEL); >> >> + if (drvdata->desc.name) >> >> + sprintf(drvdata->desc.name, "%s", config->supply_name); >> > >> > hmm, so you replaced a general helper function by open coding the string- >> > duplication. Doesn't this defeat the target of simplifying the code? >> >> Intention here, is to use devm_ API and to adopt this I have to do these >> modifications for "kstrdup" functions. I have seen in regulator folder >> almost all drivers adopted to "devm_" API. Hence same thing I am following >> to update this driver. Please let me know whether to go ahead with this >> patch or retain driver as it is. > > I don't have a strong opinion on this and others are most likely more qualified > to have a definitive answer, I just found it strange to exchange one open-coded > pattern against another open-coded one. > > So don't let me keep you from it ;-) Okay. @Mark, Dmitry: Please let me know your opinion on this. Thanks Manish Badarkhe -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Jan 28, 2014 at 02:31:32PM +0530, Manish Badarkhe wrote: > On Tue, Jan 28, 2014 at 2:25 PM, Heiko Stübner <heiko@sntech.de> wrote: > > I don't have a strong opinion on this and others are most likely more qualified > > to have a definitive answer, I just found it strange to exchange one open-coded > > pattern against another open-coded one. > > > > So don't let me keep you from it ;-) > Okay. > @Mark, Dmitry: Please let me know your opinion on this. How about implementing devm_kstrdup() and then using that?
On 01/27/2014 08:12 PM, Manish Badarkhe wrote: > Update the code to use devm_* API so that driver core will manage > resources. I'm not sure why this patch is sent to linux-tegra@vger.kernel.org; it seems nothing to do with Tegra (or Samsung or OMAP for that matter). -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Stephan, On Tue, Jan 28, 2014 at 10:11 PM, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 01/27/2014 08:12 PM, Manish Badarkhe wrote: >> Update the code to use devm_* API so that driver core will manage >> resources. > > I'm not sure why this patch is sent to linux-tegra@vger.kernel.org; it > seems nothing to do with Tegra (or Samsung or OMAP for that matter). Sorry, for the noise. I sent it to have review comments from community. Regards Manish Badarkhe -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c index 5ea64b9..e9763a4 100644 --- a/drivers/regulator/fixed.c +++ b/drivers/regulator/fixed.c @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) GFP_KERNEL); if (drvdata == NULL) { dev_err(&pdev->dev, "Failed to allocate device data\n"); - ret = -ENOMEM; - goto err; + return -ENOMEM; } - drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); + drvdata->desc.name = devm_kzalloc(&pdev->dev, + strlen(config->supply_name) + 1, + GFP_KERNEL); if (drvdata->desc.name == NULL) { dev_err(&pdev->dev, "Failed to allocate supply name\n"); - ret = -ENOMEM; - goto err; + return -ENOMEM; } drvdata->desc.type = REGULATOR_VOLTAGE; drvdata->desc.owner = THIS_MODULE; @@ -149,13 +149,13 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) drvdata->desc.enable_time = config->startup_delay; if (config->input_supply) { - drvdata->desc.supply_name = kstrdup(config->input_supply, - GFP_KERNEL); + drvdata->desc.supply_name = devm_kzalloc(&pdev->dev, + strlen(config->input_supply) + 1, + GFP_KERNEL); if (!drvdata->desc.supply_name) { dev_err(&pdev->dev, "Failed to allocate input supply\n"); - ret = -ENOMEM; - goto err_name; + return -ENOMEM; } } @@ -186,11 +186,12 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) cfg.driver_data = drvdata; cfg.of_node = pdev->dev.of_node; - drvdata->dev = regulator_register(&drvdata->desc, &cfg); + drvdata->dev = devm_regulator_register(&pdev->dev, &drvdata->desc, + &cfg); if (IS_ERR(drvdata->dev)) { ret = PTR_ERR(drvdata->dev); dev_err(&pdev->dev, "Failed to register regulator: %d\n", ret); - goto err_input; + return ret; } platform_set_drvdata(pdev, drvdata); @@ -199,24 +200,6 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) drvdata->desc.fixed_uV); return 0; - -err_input: - kfree(drvdata->desc.supply_name); -err_name: - kfree(drvdata->desc.name); -err: - return ret; -} - -static int reg_fixed_voltage_remove(struct platform_device *pdev) -{ - struct fixed_voltage_data *drvdata = platform_get_drvdata(pdev); - - regulator_unregister(drvdata->dev); - kfree(drvdata->desc.supply_name); - kfree(drvdata->desc.name); - - return 0; } #if defined(CONFIG_OF) @@ -229,7 +212,6 @@ MODULE_DEVICE_TABLE(of, fixed_of_match); static struct platform_driver regulator_fixed_voltage_driver = { .probe = reg_fixed_voltage_probe, - .remove = reg_fixed_voltage_remove, .driver = { .name = "reg-fixed-voltage", .owner = THIS_MODULE,
Update the code to use devm_* API so that driver core will manage resources. Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> --- Changes since V1: 1. Updated driver to use "devm_kzalloc" to "kstrdup". 2. Updated commit message. Not tested on any board. :100644 100644 5ea64b9... e9763a4... M drivers/regulator/fixed.c drivers/regulator/fixed.c | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-)